DE112008003010T5 - Hochskalierbare Netzwerkumgebung zum Steuern von Fernvorrichtungen - Google Patents

Hochskalierbare Netzwerkumgebung zum Steuern von Fernvorrichtungen Download PDF

Info

Publication number
DE112008003010T5
DE112008003010T5 DE112008003010T DE112008003010T DE112008003010T5 DE 112008003010 T5 DE112008003010 T5 DE 112008003010T5 DE 112008003010 T DE112008003010 T DE 112008003010T DE 112008003010 T DE112008003010 T DE 112008003010T DE 112008003010 T5 DE112008003010 T5 DE 112008003010T5
Authority
DE
Germany
Prior art keywords
server
remote device
entry
secondary server
primary server
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.)
Granted
Application number
DE112008003010T
Other languages
English (en)
Other versions
DE112008003010B4 (de
Inventor
James O. Bothell Ford
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.)
ANDREW WIRELESS SYSTEMS UK LIMITED, GB
Andrew Wireless Systems Uk Ltd Gb
Original Assignee
Arris Group Inc
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 Arris Group Inc filed Critical Arris Group Inc
Publication of DE112008003010T5 publication Critical patent/DE112008003010T5/de
Application granted granted Critical
Publication of DE112008003010B4 publication Critical patent/DE112008003010B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/029Firewall traversal, e.g. tunnelling or, creating pinholes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/166Implementing security features at a particular protocol layer at the transport layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/35Network arrangements, protocols or services for addressing or naming involving non-standard use of addresses for implementing network functionalities, e.g. coding subscription information within the address or functional addressing, i.e. assigning an address to a function
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Verfahren zum Aufbau einer Kommunikationsverbindung zwischen einer Vorrichtung und einem Primärserver, die es einem Nutzer ermöglicht, die Vorrichtung zu steuern, wobei Kommunikationen zwischen dem Primärserver und der Vorrichtung ein rechnerisch aufwendiges Protokoll verwenden, wobei das Verfahren an dem Primärserver Folgendes umfasst:
Detektieren eines Ereignisses, das der Vorrichtung zu kommunizieren ist;
auf das Detektieren des Ereignisses Bewirken, dass ein Sekundärserver einen Eintrag, welcher der Vorrichtung entspricht, in einer Namentabelle, die von dem Sekundärserver erhalten wird, einträgt, wobei die Vorrichtung dafür eingerichtet ist, ein rechnerisch einfaches Protokoll zu verwenden, um den Sekundärserver zu einer Detektion abzufragen, dass ein Eintrag, welcher der Vorrichtung entspricht, in die Namentabelle eingetragen wurde;
Empfangen einer Verbindungsinitiierung von der Vorrichtung zum Aufbau einer Kommunikationsverbindung in Reaktion darauf, dass die Vorrichtung den Eintrag in der Namentabelle detektiert hat; und
nach Empfangen der Verbindungsinitiierung Aufbauen der Kommunikationsverbindung mit der Vorrichtung unter Verwendung des rechnerisch aufwendigen...

Description

  • HINTERGRUND
  • Da Netzwerke wie z. B. das Internet weiterhin expandieren und beliebter werden, sind Nutzer zunehmend interessiert an dem Steuern entfernt gelegener Vorrichtungen. In einigen Fällen sind Fernzugriffsdienste (remote access services) verfügbar, die es Nutzern ermöglichen, auf Vorrichtungen aus der Entfernung über das Internet zuzugreifen und/oder diese zu steuern. Zum Beispiel kann ein Nutzer einen Fernzugriffsdienst verwenden, um einen Heimvideorekorder anzuweisen, eine bestimmte Fernsehsendung aufzunehmen, während er auf der Arbeit einen Personalcomputer verwendet. In einem anderen Beispiel kann ein Nutzer das Ein- oder Ausschalten eines Alarmsystem, von Lichtern etc. terminieren.
  • Vorrichtungen, die aus der Entfernung durch ein offenes Netzwerk wie das Internet zugänglich sind, sind oft anfällig für einen unberechtigten Zugriff. Um diese Bedenken anzugehen, können Vorrichtungen in einem Netzwerk an ein Sicherheitssystem gekoppelt sein, wie z. B. eine Hardware- oder Software-„Firewall”, das Daten filtert, um einen unberechtigten Zugriff auf die Vorrichtungen zu verhindern. Zum Beispiel kann ein Firewall-Router eingerichtet sein, um es den Vorrichtungen zu gestatten, ausgehende Daten zu übertragen, aber keinen eingehenden Verkehr von einer entfernten Quelle zu empfangen.
  • In einigen üblichen Systemen kann die Vorrichtung eine dedizierte Kommunikationsverbindung mit dem Fernzugriffsserver aufbauen und die Kommunikationsverbindung für eine fast unbestimmte Zeit offen halten, um zu bestimmen, ob ein Fernzugriff auf eine Vorrichtung gewünscht ist. Die Kommunikationsverbindung zwischen der Vorrichtung und dem Fernzugriffsserver kann automatisch wiederhergestellt werden, falls die Kommunikationsverbindung zufällig unterbrochen wurde. Das Aufrechterhalten einer solchen Kommunikationsverbindung unter Verwendung eines gesicherten Protokolls ist rechnerisch aufwendig und Ressourcen verbrauchend. Alternativ muss die Vorrichtung wiederholt einen Fernzugriffsserver abfragen, welcher Zugriffsanforderungen für die Vorrichtung bearbeitet, um zu bestimmen, ob ein Fernzugriff auf eine Vorrichtung gewünscht ist. Zum Beispiel kann ein Nutzer in einigen Fällen wünschen, auf die Vorrichtung aus der Entfernung zuzugreifen und diese zu steuern. In anderen Fällen muss der Fernzugriffsserver eine Vorrichtung direkt anweisen, Aktionen durchzuführen, wie z. B. ein Herunterladen und ein Installieren einer neuen Version einer Softwareanwendung. Für jeden Fall, in welchem die Vorrichtung den Fernzugriffsserver abfragt, kommuniziert die Vorrichtung mit dem Fernzugriffsserver unter Verwendung eines rechnerisch aufwendigen Kommunikationsprotokolls, wie z. B. eines Secured Socket Layer (SSL)/Transport Layer Security (TSL) Protocols, welches von dem Fernzugriff erfordert, dass er einen verfügbaren Socket für eine Kommunikationsverbindung besitzt.
  • Derzeit weisen die meisten Fernzugriffsdienste verschiedene Kapazitätsbeschränkungen auf, welche ihre Fähigkeit zum Anpassen an einen wachsenden Bedarf nach Fernzugriffsdiensten aufgrund einer wachsenden Netzwerkgröße und einer zunehmenden Zahl von Nutzern und verbundenen Vorrichtungen begrenzt. Weiter benötigt jede Sitzungsverbindung zwischen einer Vorrichtung und einem Fernzugriffsserver wesentliche Ressourcen des Fernzugriffsservers, wodurch es schwierig ist, den Fernzugriffsserver zu skalieren, um eine zunehmende Anzahl von Nutzern und Fernvorrichtungen zu bedienen. Eine mögliche Lösung besteht darin, dem Fernzugriffsserver mehr Hardware hinzuzufügen, um die Rechnerkapazität des Fernzugriffsservers zu erhöhen, aber das Hinzufügen von mehr Hardware ist kostenintensiv und kompliziert und das Aufrechterhalten aufgebauter Verbindungen wird übersehen. Eine andere Lösung besteht darin, das Abfrageintervall jeder Vorrichtung zu erhöhen, um die Anzahl von Sitzungsverbindungen zu verringern, welche für das von jeder Vorrichtung durchgeführte Abfragen benötigt wird. Ein längeres Abfrageintervall bedeutet jedoch eine längere durchschnittliche Latenzzeit beim Beantworten einer Zugriffsanforderung.
  • Es gibt daher einen Bedarf nach einer grundlegenden Struktur, um aufwendige Kommunikationen in einem Netzwerk zu verringern, während es mehr Nutzern ermöglicht wird, Fernvorrichtungen schnell und sicher zu steuern.
  • KURZBESCHREIBUNG
  • Es werden ein Verfahren und ein System bereitgestellt, um es einem Nutzer oder einem Prozess zu gestatten, eine Vorrichtung zu steuern, welche in einem Netzwerk entfernt gelegen ist.
  • Eine Anforderung, eine Fernvorrichtung zu steuern, wird durch einen Primärserver verarbeitet. Ein aufwendiges und teures Abfragen des Primärservers durch die Vorrichtung wird durch ein unaufwendiges Abfragen eines Sekundärservers ersetzt. In einer Ausführungsform kommuniziert die Fernvorrichtung mit einem Sekundärserver, wie z. B. einem Domain Name Service (DNS) Server, wobei ein einfaches Protokoll verwendet wird, um zu bestimmen, ob der Primärserver wünscht, mit der Fernvorrichtung zu kommunizieren. Wenn der Primärserver eine Anforderung, die Fernvorrichtung zu steuern, hat, erzeugt der Primärserver seinerseits einen Tabelleneintrag auf den Domain Name Server, um die Fernvorrichtung von einer Anforderung zum Kommunizieren zu unterrichten. Auf ein Abfragen des Domain Name Servers und ein Erfahren von dem Tabelleneintrag in der Namentabelle hin iniitiert die Fernvorrichtung eine Kommunikationsverbindung mit dem Primärserver, um die Anweisungen zum Steuern der Fernvorrichtung zu empfangen. Auf diese Weise kommunizieren die Fernvorrichtung und der Primärserver nur dann direkt miteinander unter Verwendung einer aufwendigen Kommunikationsverbindung, wenn der Primärserver eine unerledigte Anforderung hat, auf die Fernvorrichtung zuzugreifen oder diese zu steuern.
  • In einem Aspekt wird ein Verfahren für eine, durch eine Firewall geschützte Vorrichtung bereitgestellt, um mit einem Primärserver zu kommunizieren, wenn der Primärserver einen Bedarf nach Kommunikation angezeigt hat. Der Primärserver zeigt einen Bedarf nach Kommunikation durch ein Erzeugen eines Tabelleneintrags in einem Sekundärserver an, welcher durch die Vorrichtung unter Verwendung eines einfachen Protokolls für eine Kommunikation abgefragt wird. Das Verfahren weist ein Übertragen einer Anfrage von der Vorrichtung an den Sekundärserver auf, um zu bestimmen, ob der Sekundärserver eine Namentabelle mit einem Tabelleneintrag besitzt, welcher der Vorrichtung entspricht. Der Sekundärserver weist einen Tabelleneintrag auf, welcher der Vorrichtung entspricht; die Vorrichtung baut dann eine Kommunikationsverbindung mit dem Primärserver auf, welche es dem Primärserver gestattet, mit der Vorrichtung durch die Firewall zu kommunizieren. Die Vorrichtung empfängt Informationen, welche der Primärserver über die Kommunikationsverbindung überträgt.
  • In einem weiteren Aspekt kann der Primärserver Anweisungen für die Vorrichtung in einen Tabelleneintrag in dem Sekundärserver einbetten. Die Vorrichtung fragt den Sekundärserver nach dem Eintrag ab und empfängt von dem Sekundärserver eine Anweisungen enthaltende Antwort. Die Vorrichtung kann die Anweisungen aus der Antwort identifizieren und die An weisungen durchführen, ohne eine aufwendige direkte Kommunikation mit dem Primärserver aufbauen zu müssen.
  • BESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist ein bildhaftes Diagramm, welches ein Beispiel einer Umgebung 100 darstellt, in welcher ein Fernzugriffsdienstsystem, welches hier beschrieben ist, arbeiten kann.
  • 2A und 2B sind Blockdiagramme, welche Wechselwirkungen zwischen verschiedenen Komponenten darstellen, welche in der Arbeitsumgebung 100 von 1 dargestellt sind, wobei eine aufwendige Kommunikationsverbindung zwischen einer Fernvorrichtung und einem Primärserver nur dann aufgebaut wird, wenn ein Tabelleneintrag für die Fernvorrichtung in einem Sekundärserver erzeugt wurde.
  • 3A und 3B sind Blockdiagramme, welche Wechselwirkungen zwischen verschiedenen Komponenten zeigen, welche in der Arbeitsumgebung 100 dargestellt sind, wobei Informationen in einem Tabelleneintrag des Sekundärservers verwendet werden, um eine Fernvorrichtung anzuweisen.
  • 4 ist ein Flussdiagramm eines Beispiels einer Routine für eine Fernvorrichtung, welche Anweisungen von einem Primärserver über einen Sekundärserver empfängt.
  • 5 ist ein Flussdiagramm eines Beispiels einer bedienenden Routine für einen Primärserver, um auf eine Fernvorrichtung zuzugreifen und diese zu steuern.
  • 6 ist ein Flussdiagramm eines anderen Beispiels einer Routine für eine Fernvorrichtung, welche eine aufwendige Kommunikationsverbindung zwischen der Vorrichtung und einem Primärserver nur dann aufbaut, wenn ein Tabelleneintrag für die Vorrichtung in einem Sekundärserver erzeugt wurde.
  • 7 ist ein Flussdiagramm einer adaptiven Abfrageroutine für eine Fernvorrichtung, welche Anweisungen eines Primärservers über eine fast beständige Verbindung mit einem Sekundärserver empfängt.
  • DETALLIERTE BESCHREIBUNG
  • Allgemein beschrieben bezieht sich die vorliegende Anmeldung auf ein Verfahren und ein System zum Bearbeiten einer Zugriffsanforderung, um eine entfernt gelegene Vorrichtung zu steuern. Im Spezielleren werden ein Verfahren und ein System bereitgestellt, bei welchen der Bedarf nach aufwendigen Kommunikationsverbindungen zwischen einem Primärserver und einer Fernvorrichtung durch ein Eliminieren des Bedarfs nach wiederholtem, aufwendigem und teuren Abfragen des Primärservers verringert ist. Zum Beispiel kommuniziert in einem Aspekt eine Fernvorrichtung mit einem Sekundärserver über eine weniger aufwendige Protokollverbindung, um zu bestimmen, ob ein Primärserver wünscht, Steuerungsanweisungen, z. B. von einem Nutzer, an die Fernvorrichtung zu kommunizieren, anstatt mit einem Primärserver über eine aufwendige Kommunikationsprotokollverbindung zu kommunizieren. Ein „aufwendiges Kommunikationsprotokoll” bezieht sich auf ein Kommunikationsprotokoll, welches eine größere Ressourcenmenge (wie z. B. Bandbreite, Sockets, Bearbeitungszeit etc.) zur Kommunikation benötigt als ein einfacheres Kommunikationsprotokoll. Typischerweise kann das Abfragen des Sekundärservers ein weniger aufwendiges Kommunikationsprotokoll im Vergleich zu dem Abfragen des Primärservers verwenden. Ein weniger aufwendiges Kommunikationsprotokoll (im Folgenden: einfaches Kommunikationsprotokoll) bezieht sich auf ein Kommunikationsprotokoll, welches mit weniger Komplexität gestaltet ist, um die, für eine Kommunikation benötigten Ressourcen zu verringern. Zum Beispiel ist ein verbindungsloses Protokoll wie UDP, welches kürzere Header fester Länge aufweist, aufgrund der geringeren Datenmenge und geringeren Bearbeitungszeit, welche für eine Kommunikation benötigt wird, weniger aufwendig (einfacher) im Vergleich zu einem Protokoll, welches längere Header variabler Länge aufweist.
  • Gemäß eines Merkmals, welches hier beschrieben ist, kann der Sekundärserver ein Namenserver sein, welcher eine Namentabelle von Fernvorrichtungen aufweist. Beim Bearbeiten einer Anforderung, eine Fernvorrichtung zu steuern, kann ein Primärserver einen Sekundärserver veranlassen, eine Namentabelle mit einem Eintrag zu aktualisieren, welcher die Fern vorrichtung, welche gesteuert werden soll, identifiziert. Der Tabelleneintrag wird verwendet, um der Vorrichtung zu signalisieren, dass eine Kommunikation mit dem Primärserver gewünscht wird. Unter Verwendung eines einfachen Kommunikationsprotokolls fragt die Fernvorrichtung den Sekundärserver, z. B. gemäß einer üblichen DNS-Abfrage ab, um zu bestimmen, ob die Namentabelle einen Eintrag aufweist, welcher die Fernvorrichtung identifiziert. Falls die Namentabelle einen Eintrag aufweist, welcher die Fernvorrichtung identifiziert, kann die Fernvorrichtung dann mit dem Primärserver kommunizieren. Ein Beispiel für ein einfaches Kommunikationsprotokolls kann ein verbindungsloses Protokoll sein, wobei eine Vorrichtung an einem Ende der Kommunikationskopplung Daten an das andere Ende überträgt, ohne zunächst sicherzustellen, dass der Empfänger verfügbar und bereit ist, um die Daten zu empfangen. Ein Abfragen unter Verwendung eines verbindungslosen Protokolls erfordert im Allgemeinen ein Austauschen einer geringeren Datenmenge im Vergleich zum Abfragen unter Verwendung eines verschlüsselten oder ständigen verbindungsorientierten (d. h. aufwendigeren) Protokolls. Zum Beispiel kann ein solches Abfragen des Sekundärservers unter Verwendung eines einfachen Kommunikationsprotokolls wie z. B. eines User-Datagram-Protocols (UDP) erfordern, dass zwei Datenpakete ausgetauscht werden. Weiter ist die Größe jedes Datenpakets für UDP typischerweise kleiner als die Größe eines Datenpakets für ein verschlüsseltes oder beständiges verbindungsorientiertes Protokoll wie z. B. beim Verwenden von SSL.
  • Eine bildhafte Darstellung in 1 zeigt ein Beispiel einer Arbeitsumgebung 100 für ein Fernzugriffsdienstsystem. Die Arbeitsumgebung 100 von 1 weist eine oder mehrere Nutzerrechnervorrichtungen auf, wie z. B. eine Nutzerrechnervorrichtung 100, über welche ein Nutzer 112 mit einem Primärserver 102 über ein Kommunikationsnetzwerk 106, wie z. B. das Internet, Wechselwirken kann.
  • Nutzerrechnervorrichtungen wie z. B. die Nutzerrechnervorrichtung 108 weisen typischerweise eine Vielfalt von Konfigurationen oder Implementationen auf, wie z. B. – aber nicht beschränkt auf – Laptops oder Tablet-Computer, Personal Computer, Personal Digital Assistants (PDAs), hybride PDA/Mobiltelefone, Mobiltelefone, Workstations usw.
  • Der Primärserver 102 kann einen oder vielfach mehrere Server oder Rechnerkomponenten umfassen, um Fernzugriffsdienste bereitzustellen, welche es Nutzern gestatten, über Netzwerke entfernt gelegene Vorrichtungen zu steuern, oder auf diese zuzugreifen. Der Primärserver 102 ist kommunikationstechnisch mit der Nutzerrechnervorrichtung 108 über das Netzwerk 106 verbunden, um Anforderungen von dem Nutzer 112 nach Fernzugriffsdiensten zu ermöglichen. Weiter kann der Primärserver 102 eine Datenbasis zum Speichern von Informationen über jeden Nutzer und die Fernvorrichtungen enthalten, welche mit jedem Nutzer in Verbindung stehen, um einen Nutzer dabei zu unterstützen, die Fernvorrichtungen zu sehen/zu steuern, zu deren Zugriff der Nutzer berechtigt ist. Zum Beispiel kann es einem Nutzer gestattet sein, eine Fernseh-Set-Topbox, aber nicht ein Alarmsystem zu steuern. Wie in größerem Detail unten diskutiert werden wird, kann der Primärserver 102 zunächst überprüfen, ob der Nutzer berechtigt ist, auf die Fernvorrichtung zuzugreifen, indem er die Nutzerinformationen überprüft, welche in der Datenbasis gespeichert sind, wenn ein Nutzer anfordert, eine Fernvorrichtung, wie z. B. Fernvorrichtungen 120, 122, 124, über eine Nutzerrechnervorrichtung 108 zu steuern. Wie von einem Fachmann verstanden werden wird, kann die Datenbasis lokal oder entfernt zum Primärserver 102 sein. In einer Ausführungsform kann der Primärserver 102 auf der Nutzerrechnervorrichtung eine grafische Nutzerschnittstelle bereitstellen, welche einsatzbereite Fernvorrichtungen auflistet, welche der Nutzer über die Fernzugriffsdienste, welche durch den Primärserver 102 bereitgestellt werden, steuern oder auf welche er über diese zugreifen kann. Die Fernvorrichtungen 120, 122, 124 können jede elektronische Vorrichtung sein, welche dazu in der Lage ist, eine Kommunikationsverbindung mit dem Primärserver 102 aufzubauen, und dazu in der Lage ist, Anweisungen zu implementieren, welche von dem Primärserver 102 angezeigt werden. Beispiele von Fernvorrichtungen beinhalten, aber sind nicht beschränkt auf, Videorekorder, Computer, Mediacenters, Thermostate, Leistungsmodule, Alarmsysteme, Lichter, Küchengeräte, Ausrüstung, etc. Zum Beispiel kann der Nutzer, wenn er von Zuhause weg ist, über die Fernzugriffsdienste, welche durch den Primärserver 102 bereitgestellt werden, Temperaturen in dem Haus des Nutzers durch ein Lesen eines Thermostats überwachen, Lichter aus- bzw. einschalten, ein Alarmsystem steuern oder eine Fernsehsendung aufzeichnen.
  • In einigen Fällen kann eine Menge von Fernvorrichtungen durch eine Zentralvorrichtung gesteuert werden, welche dazu in der Lage ist, eine Kommunikationsverbindung über Netzwerke aufzubauen und dazu in der Lage ist, Anweisungen zu bearbeiten, welche durch den Primärserver 102 angezeigt werden. In dieser Ausführungsform kann die Zentralvorrichtung von Fernvorrichtungen verwendet werden, welche nicht die Funktionalität aufweisen, eine Kommunikationsverbindung selbst aufzubauen oder Anweisungen zu bearbeiten. Die Menge von Fernvorrichtungen und die Zentralvorrichtung können in einem lokalen Netzwerk, wie z. B. einem Heimnetzwerk etc., verbunden sein.
  • Wie gezeigt können die Fernvorrichtungen durch eine „Firewall” 110 geschützt sein, welche unberechtigte einkommende Daten daran hindert, an die Fernvorrichtungen kommuniziert zu werden. Unter einer Sicherheitspolitik kann die Firewall 110, wie z. B. ein gesicherter Router, eingerichtet sein, um die geschützten Vorrichtungen daran zu hindern, Datenverkehr von einer entfernten Quelle zu empfangen, bevor eine sichere Kommunikationsverbindung aufgebaut ist. Daher öffnen die Vorrichtungen 120, 122, 124 zum Aufbauen einer Kommunikationsverbindung mit dem Primärserver 102 zunächst eine Sitzungsverbindung, um mit dem Primärserver 102 zu verhandeln, um eine Kommunikationsverbindung wie z. B. eine SSL/TSL-Verbindung aufzubauen.
  • Bei einer üblichen Herangehensweise kann von einer Vorrichtung hinter der Firewall verlangt werden, den Primärserver 102 periodisch abzufragen, um festzustellen, ob der Primärserver 102 eine Kommunikationsverbindung mit der Fernvorrichtung zu schaffen wünscht. Eine solch leicht verfügbare Verbindungsfähigkeit zwischen der Fernvorrichtung und dem Primärserver 102 ist wichtig, falls ein Nutzer wünscht, die Vorrichtung in nahezu Echtzeit zu steuern oder auf diese zuzugreifen, weil es dem Primärserver 102 mit einem Firewall-Schutz nicht gestattet sein kann, die Fernvorrichtung direkt zu benachrichtigen, wenn der Primärserver 102 mit der Fernvorrichtung im Auftrag eines Nutzers kommunizieren will. Die meiste Zeit baut ein solches Abfragen des Primärserver 102 eine Verbindung nur auf, um zu überprüfen, ob ein Bedarf nach Kommunikation mit dem Primärserver 102 vorliegt. Jede Sitzungsverbindung zwischen einer Fernvorrichtung und einem Primärserver, selbst für ein einfaches Abfragen, ist aufwendig, was bedeutet, dass es signifikante Ressourcen (z. B. Bandbreite, Sockets, etc.) des Primärservers erfordert, wodurch es schwierig sein kann, den Primärserver zu skalieren, um eine wachsende Anzahl von Nutzern und Fernvorrichtungen zu bedienen.
  • Während die Kommunikation zwischen dem Primärserver 102 und der Fernvorrichtung typischerweise ein aufwendiges Kommunikationsprotokoll verwendet, wie z. B. verbindungsorientierte oder gesicherte Protokolle, welche Handshaking erfordern, erkennt die vorliegende Erfindung, dass andere verfügbare Kommunikationen zwischen einem Sekundärserver und der Fernvorrichtung ein einfaches Kommunikationsprotokoll verwenden können. Zum Beispiel können der Sekundärserver und die Fernvorrichtung über eine verbindungslose Kommunikation kommunizieren. In diesem Beispiel ist die verbindungslose Kommunikation einfach (d. h. verwendet weniger Ressourcen) im Vergleich zu der verbindungsorientieren Kom munikation, welche mit dem Primärserver verwendet wird. Wie ein Durchschnittsfachmann verstehen wird, kann die verbindungsorientierte Kommunikation ein Aufbauen einer End-zu-End-Verbindung erfordern, bevor Daten gesendet werden, während die verbindungslose Kommunikation eine solche End-zu-End-Verbindung nicht erfordert, und es werden mehr Datenpakete ausgetauscht, um eine End-zu-End-Verbindung aufzubauen.
  • In einem Aspekt der vorliegenden Erfindung kann ein solch aufwendiges Abfragen des Primärservers 102 durch ein einfaches Abfragen des Sekundärservers 104 ersetzt werden. In einem bestimmten Beispiel kann der Sekundärserver 104 ein üblicher Domainname-Server sein, welcher eingerichtet ist, um Namentabellen zu halten, in welchen Hostnamensdaten für eine Fernvorrichtung und zugehörige Informationen wie z. B. eine passende IP-Adresse, etc. gespeichert werden können. Wie ein Durchschnittsfachmann verstehen wird, können Kommunikationen mit dem Sekundärserver 104 in dieser bestimmten Ausführungsform verbindungslos sein. Die Fernvorrichtung an einem Ende der Kommunikation überträgt Daten an den Sekundärserver, ohne zunächst sicherstellen zu müssen, dass der Sekundärserver verfügbar und bereit ist, um die Daten zu empfangen. Vorzugsweise antwortet der Sekundärserver 104 an die Fernvorrichtung, wenn eine Kommunikation empfangen wird. Kommunikationen zwischen dem Sekundärserver 104 und der Fernvorrichtung können, anstelle des Abfragens zwischen der Fernvorrichtung und dem Primärserver 102, zum Abfragen verwendet werden. Auf diese Weise wird die Anzahl von Sitzungsverbindungen zwischen der Fernvorrichtung und dem Primärserver 102 wesentlich verringert. Weniger Sitzungsverbindungen bedeuten, dass weniger Ressourcen von dem Primärserver benötigt werden, um eine wachsende Anzahl von Fernvorrichtungen und ihrer Nutzer zu bedienen.
  • Auch wenn veranschaulichende Ausführungsformen, welche hier beschrieben sind, in Verbindung mit einem Sekundärserver erläutert werden, welcher eine Namentabelle hält, kann der Sekundärserver jeder Netzwerkort oder jede Netzwerkpräsenz sein, in welcher der Primärserver 102 Informationen hinterlassen kann, um eine Fernvorrichtung 120, 122, 124 davon zu unterrichten, dass eine Kommunikation mit der Fernvorrichtung gewünscht ist. In der oben beschriebenen Ausführungsform kann eine Fernvorrichtung bestimmen, ob der Primärserver 102 mit der Fernvorrichtung kommunizieren muss, indem er über ein leichtes Kommunikationsprotokoll eine Namentabelle in dem Sekundärserver 104 überprüft. Zum Beispiel kann die Fernvorrichtung annehmen, dass der Primärserver 102 kommunizieren will, wenn ein Eintrag in der Namentabelle erzeugt wurde, welcher der Fernvorrichtung entspricht. Die Fernvorrichtung startet dann eine Sitzungsverbindung mit dem Primärserver 102.
  • Um zu bestimmen, ob der Primärserver 102 kommunizieren möchte, so dass die Nutzeranforderung in nahezu Echtzeit erfüllt werden kann, überträgt die Fernvorrichtung periodisch eine Anfrage nach einem Tabelleneintrag an den Sekundärserver 104. Beim Empfang einer Anfrage von der Fernvorrichtung überprüft der Sekundärserver 104 seine Namentabelle nach einem Eintrag, welcher der Fernvorrichtung entspricht. In einer Ausführungsform kann der Sekundärserver 104 den Informationen, welche in dem Sekundärserver 104 gehalten werden, gestatten, dynamisch von dem Primärserver 102 aktualisiert zu werden, wann immer der Primärserver 102 einen Bedarf nach Kommunikation mit der Fernvorrichtung hat.
  • 2A und 2B stellen Blockdiagramme bereit, welche Wechselwirkungen zwischen verschiedenen Komponenten in der Arbeitsumgebung 100 von 1 darstellen. Eine Kommunikationsverbindung wird zwischen einer Fernvorrichtung und dem Primärserver aufgebaut, wenn ein Tabelleneintrag für die Fernvorrichtung in dem Sekundärserver erzeugt wurde. Ein Nutzer (nicht gezeigt), welcher eine Nutzerrechnervorrichtung 108 betätigt, welche an das Netzwerk, z. B. das Internet 106 gekoppelt ist, kann einen Zugriff auf eine der Fernvorrichtungen 120 anfordern. Zum Zwecke der Diskussion nimmt die folgende Diskussion an, dass die Fernvorrichtungen 120 hinter einer Firewall gelegen sind, wie z. B. einer Sicherheitsvorrichtung 110, welche eingerichtet ist, um die Fernvorrichtungen daran zu hindern, Verkehr von einer entfernten Quelle außerhalb einer sicheren Kommunikationsverbindung zu empfangen. Die Diskussion nimmt ferner an, dass der Primärserver 102 nicht dazu in der Lage ist, mit der Fernvorrichtung 120 zu kommunizieren, bis die Fernvorrichtung 120 eine sichere Kommunikationsverbindung mit dem Primärserver 102 initiiert und die Verbindung erfolgreich verhandelt hat. Obwohl die folgenden Ausführungsformen in dem Zusammenhang eines Erforderns sicherer Kommunikationsverbindungen beschrieben sind, sollten derartige Ausführungsformen nicht als begrenzend angesehen werden. Des Weiteren sind die beschriebenen Ausführungsformen auf jede Art von Arbeitsumgebung anwendbar, in welcher ein Kommunikationsprotokoll, welches zwischen dem Sekundärserver und der Fernvorrichtung verwendet wird, weniger aufwendig (einfacher) ist im Vergleich zu einem Kommunikationsprotokoll, welches zwischen dem Primärserver und der Fernvorrichtung verwendet wird. In einer Ausführungsform kann eine Gruppe von Fernvorrichtungen, wie z. B. Heimvorrichtungen, welche in einem Heimnetzwerk verbunden sind, mit dem Internet sicher über eine Firewall verbunden sein.
  • Wie von einem Durchschnittsfachmann verstanden werden wird, kann die Firewall jede Art von Sicherheitssystem sein, einschließlich Sicherheitshardware (z. B. ein gesicherter Router, etc.) und/oder -software.
  • Wie in 2A gezeigt, überträgt die Nutzerrechnervorrichtung 108 die Fernzugriffsanforderung an den Primärserver 102, nachdem die Nutzerrechnervorrichtung 108 eine Fernzugriffsanforderung für eine Fernvorrichtung 120 empfangen hat. Beim Empfang der Nutzeranforderung kann der Primärserver 102 überprüfen, ob die Anforderung gültig oder berechtigt ist. Es gibt viele Wege, eine Fernzugriffsanforderung von einem Nutzer zu empfangen und diese zu überprüfen. Zum Beispiel kann der Primärserver 102 eine Liste von einsatzbereiten Fernvorrichtungen gemeinsam mit Fernzugriffsanforderungen präsentieren, von welchen der Nutzer eine Auswahl treffen darf. Die einsatzbereiten Fernvorrichtungen können Vorrichtungen sein, auf welche der Nutzer über den Primärserver 102 zugreifen kann, oder welche er über diesen steuern kann. Zum Beispiel kann der Nutzer zu der Zeit der Registrierung bei dem Primärserver 102 eine Liste von Fernvorrichtungen, Hostnamen der Fernvorrichtungen, geografischen Orten der Fernvorrichtungen, etc. bereitgestellt haben, um einen Fernzugriffsdienst über den Primärserver 102 zu empfangen. In einigen Fällen kann der Nutzer der Liste der einsatzbereiten Fernvorrichtungen eine Fernvorrichtung zu jeder Zeit hinzufügen oder diese davon entfernen. Der Primärserver 102 kann solche Nutzerprofilinformationen, Berechtigungsinformationen, eine Liste von einsatzbereiten Fernvorrichtungen, etc. in seiner Datenbank speichern.
  • In einigen Fällen kann eine Gruppe von Nutzern auf eine Fernvorrichtung zugreifen oder diese steuern. Zum Beispiel kann der Primärserver 102 einer Gruppe von Angestellten gestatten, auf Fernvorrichtungen zuzugreifen, welche zu einem Unternehmen gehören, oder diese zu steuern. Des Weiteren kann auf mehrere identische oder ähnliche Vorrichtungen von einem Nutzer aus der Entfernung zugegriffen oder es können jene von diesem gesteuert werden. Jeder Vorrichtung können eindeutige Identifikationsinformationen wie z. B. ein unterscheidbarer Hostname zugeordnet sein. Zum Beispiel können einsatzbereite Vorrichtungen für einen Nutzer mehrere Fernsehgeräte enthalten, wovon jedes durch einen Hostnamen z. B. „Wohnzimmerfernseher”, „Schlafzimmerfernseher”, „Kellerfernseher”, etc. identifiziert werden kann.
  • Wenn der Primärserver 102 einen Bedarf feststellt, eine Fernvorrichtung anzuweisen, beispielsweise um einen Fernzugriff zu bedienen, eine Softwareanwendung zu aktualisieren, Fernvorrichtungen an- oder auszuschalten, etc., kann der Primärserver 102 den Sekundärserver 104 dazu veranlassen, eine Namentabelle in dem Sekundärserver 104 mit einem Tabelleneintrag, welcher der Fernvorrichtung entspricht, zu erzeugen oder zu aktualisieren. Wie oben beschrieben, kann der Tabelleneintrag im Sekundärserver 104 dynamisch in annähernder Echtzeit oder zumindest mit geringer Verzögerung aktualisiert werden. Für den Zweck der Diskussion kann angenommen werden, dass der Sekundärserver 104 eine Namentabelle hält, welche verschiedene Arten von Einträgen, Hostnameninformationen, dynamisch zugewiesene IP-Adressen, die Zeitpunkte der Zuweisungen, oder ähnliches speichert. Zusätzlich kann angenommen werden, dass die Fernvorrichtung 120 dazu eingerichtet ist, periodisch, als ein Teil einer Abfrageroutine, bei dem Sekundärserver 104 anzufragen, um festzustellen, ob ein Tabelleneintrag, welcher der Fernvorrichtung 120 entspricht, in der Namentabelle erzeugt oder aktualisiert wurde. Auf den Empfang der Abfrage hin sucht der Sekundärserver 104 die Namentabelle und bestimmt, ob ein Tabelleneintrag für die Fernvorrichtung 120 in der Namentabelle existiert. Falls der Tabelleneintrag gefunden wird, überträgt der Sekundärserver 104 an die Fernvorrichtung 120 eine Antwort, welche anzeigt, dass der Tabelleneintrag existiert.
  • Wie in 2B gezeigt, empfängt die Fernvorrichtung 120 von dem Sekundärserver 104 eine Antwort, welche anzeigt, dass ein Eintrag für die Fernvorrichtung 120 in der Namentabelle existiert. In einer Ausführungsform kann der Sekundärserver 104 eine positive Antwort senden, um anzuzeigen, dass der Tabelleneintrag für die Fernvorrichtung 120 in der Namentabelle 120 existiert, oder eine negative Antwort, um anzuzeigen, dass der Tabelleneintrag für die Fernvorrichtung 120 in der Namentabelle nicht existiert (oder abgelaufen ist). Alternativ kann in einer anderen Ausführungsform der Sekundärserver 104 eine Antwort nur dann an die Fernvorrichtung senden, falls ein Tabelleneintrag in der Namentabelle gefunden wurde, welcher der Vorrichtung entspricht. Falls ein Tabelleneintrag nicht gefunden wurde, wird keine Antwort an die Fernvorrichtung gesendet. Nach einer Verfallsperiode ohne Antwort kann die Fernvorrichtung 120 annehmen, dass ein Tabelleneintrag, welcher der Vorrichtung entspricht, nicht in der Namentabelle existiert. Beim Empfang einer positiven Antwort von dem Sekundärserver 104 bestimmt die Fernvorrichtung 120, dass der Primärserver 102 mit der Fernvorrichtung 120 kommunizieren muss. Die Fernvorrichtung 120 initiiert eine Kommunikationsverbindung zwischen dem Primärserver 102 und der Fernvorrichtung 120 gemäß eines aufwendigeren Kommunikationsprotokolls, wie z. B. eines SSL/TSL-Protokolls.
  • Wie ein Durchschnittsfachmann verstehen wird, kann die Fernzugriffsanforderung in eine einzelne Aufgabe oder eine Folge von Aufgaben (Anweisungen) übersetzt werden. Zum Beispiel kann der Primärserver 102 die Fernzugriffsanforderung in mehrere Aufgaben parsen, welche die Fernvorrichtung 120 durchführen kann. Aufgaben (Anweisungen) werden von dem Primärserver 102 an die Fernvorrichtung 120 über die Kommunikationsverbindung übertragen, sobald diese aufgebaut wurde. In einigen Fällen muss der Primärserver 102 mit einer Fernvorrichtung 120 kommunizieren, auch wenn eine spezielle Fernzugriffsanforderung von einem Nutzer nicht empfangen wurde. Wie bei dem oben beschriebenen Fall veranlasst der Primärserver 102 den Sekundärserver 104, einen Tabelleneintrag zu aktualisieren oder zu erzeugen, welcher der Fernvorrichtung 120 entspricht, mit welcher der Primärserver 102 kommunizieren möchte. Wie in größerem Detail unten beschrieben werden wird, können die Anweisungen oder Aufgaben in der Form von Textnachrichten, vordefinierten Anweisungen, reservierten IP-Adressen, etc. übertragen werden.
  • Die Fernvorrichtung 120 erfüllt eine Fernzugriffsanforderung durch ein Implementieren von Aufgaben (Anweisungen), welche von dem Primärserver 102 übertragen wurden. Falls sich die Fernzugriffsanforderung darauf richtet, dass eine Videoaufzeichnungsvorrichtung beginnt, entweder unmittelbar oder zu einer Zeit, welche in der Anweisung kommuniziert wurde, einen bestimmten Medieninhalt aufzuzeichnen, kann die Videoaufzeichnungsvorrichtung z. B. eine Folge von Anweisungen von dem Primärserver 102 empfangen, z. B.: 1) schalte die Videoaufzeichnungsvorrichtung ein, 2) finde den Kanal, welcher den bestimmten Medieninhalt zeigt, 3) zeichne den Medieninhalt auf, etc. Empfängt die Videoaufzeichnungsvorrichtung (Fernvorrichtung 120) in diesem Beispiel solche Anweisungen, während sie andere Sendungen oder Inhalte aufzeichnet, kann die Videoaufzeichnungsvorrichtung die laufende Aufzeichnung anhalten und eine neue Aufzeichnung beginnen, um die Anforderung von dem Nutzer zu erfüllen.
  • In einigen Ausführungsformen können Fernzugriffsanforderungen eine Bestätigung von der Fernvorrichtung 120 erfordern, nachdem die Fernzugriffsanforderung initiiert oder abgeschlossen wurde. In solchen Ausführungsformen kann die Fernvorrichtung 120 eine angemessene Bestätigung an den Primärserver 102 senden, nachdem die Fernvorrichtung 120 die Fernzugriffsanforderung erfüllt hat. Auf ähnliche Weise kann die Vorrichtung eine Benachrichtigung an den Primärserver 102 senden, dass die Nutzeranforderung nicht erfüllt wurde, und auf weitere Anweisungen von dem Primärserver 102 über die aufgebaute Kommunikati onsverbindung warten. Der Primärserver 102 kann dann optional eine weitere Aufgabe oder Anweisungen an die Vorrichtung übertragen.
  • Beim Empfang der Bestätigung (Benachrichtigung) oder nach einer Schwellzeit kann der Primärserver 102 den erzeugten Eintrag in der Namentabelle, welcher der Fernvorrichtung 120 entspricht, bereinigen oder löschen. Die Schwellzeit kann so definiert sein, dass ein erzeugter Eintrag in der Namentabelle nach einer bestimmten Zeit verfällt. Dies kann verhindern, dass der erzeugte Eintrag als Teil der Antwort vom Sekundärserver 104 mehr als einmal zurückgegeben wird.
  • Es muss auch festgestellt werden, dass die obigen Ausführungsformen und die Beispiele nur zu beispielhaften Zwecken beschrieben sind. Ferner können andere Arten von DNS-Informationen in dem Sekundärserver 104 durch den Primärserver 102 verwendet werden, um die Fernzugriffsanforderung wiederzugeben. Zum Beispiel können verschiedene Arten von Eintragen in der Namentabelle erzeugt oder aktualisiert werden, wenn der Primärserver 102 mit einer speziellen Fernvorrichtung 120 kommunizieren muss. Dies bedeutet, dass einige DNS-nativen Einträge verwendet werden können, um Anweisungen oder Aufgaben zu enthalten. Zum Beispiel kann ein TXT-Eintrag verwendet werden, um z. B. Zeitinformationen über die Eintragserzeugung zu enthalten, oder um eine einfache Anweisung wie z. B. „schalte an”, „schalte aus”, „verbinde”, „verlängere eine Abfrageperiode”, „verkürze eine Abfrageperiode”, etc. zu enthalten. Wie ein Durchschnittsfachmann verstehen wird, kann ein TXT-Eintrag eine beliebige Länge von Textzeichenfolgen aufweisen, welche an eine gegebene DNS-Vorrichtung angehängt werden kann, wodurch es dem Primärserver 102 gestattet wird, Anweisungen oder Befehle in einen DNS-Eintrag ohne ein Ändern des Verhaltens des Sekundärservers 104 aufzunehmen. In dieser Ausführungsform kann eine Fernvorrichtung 120 als Teil einer Abfrage an den Sekundärserver 104 eine Anfrage nach einem TXT-Eintrag übertragen, welche der Fernvorrichtung 120 entspricht.
  • Auf ähnliche Weise kann ein kanonischer Namenseintrag („CNAME record”) zur Kommunikation zwischen dem Primärserver 102 und der Fernvorrichtung 120 verwendet werden. Wie ein Durchschnittsfachmann verstehen wird, kann ein CNAME-Eintrag Informationen über einen Alias einer der Domänennamen beinhalten, um diesen an einen anderen zu übertragen. Wie ein TXT-Eintrag, kann ein CNAME-Eintrag auch einfache Anweisungen für die entsprechende Fernvorrichtung 120 enthalten. Abhängig von der Art von Anweisung, muss die Vor richtung mit dem Primärserver 102 überhaupt kommunizieren oder nicht. Falls die Anweisung beispielsweise besagt, dass eine Temperatur eines Zimmers unter Verwendung eines Thermostats, welcher an einem Heizgerät angebracht ist, zu verändern ist, muss das Thermostat nicht mit dem Primärserver 102 kommunizieren und es muss daher keine aufwendige Kommunikationsverbindung aufgebaut werden.
  • In einer anderen Ausführungsform kann eine Menge von IP-Adressen reserviert sein, um Anweisungen von dem Primärserver 102 wiederzugeben. Zum Beispiel können die ersten zehn IP-Adressen, welche in dem Sekundärserver 104 verfügbar sind, reserviert sein, um bestimmte Anweisungen oder Aufgaben anzuzeigen. Jede Fernvorrichtung 120 kann Kenntnis über die reservierten IP-Adressen und eine Anweisung besitzen, welche mit jeder reservierten IP-Adresse in Verbindung steht. Falls der Primärserver 102 wünscht, mit einer Fernvorrichtung 120 für eine bestimmte Anweisung zu kommunizieren, identifiziert der Primärserver 102 eine IP-Adresse, welche die Anweisung wiedergibt. Der Primärserver 102 kann den Sekundärserver 104 dazu veranlassen, einen Eintrag für die Fernvorrichtung 120 zu erzeugen, welcher die identifizierte IP-Adresse einem Hostnamen der Fernvorrichtung 120 in der Namentabelle zuordnet. In einer Ausführungsform kann die Fernvorrichtung 120 eine Anweisungstabelle halten, welche eine reservierte IP-Adresse und eine Anweisung aufweist, welche in der IP-Adresse wiedergegeben ist. In dieser Ausführungsform kann die Fernvorrichtung 120 die empfangene IP-Adresse mit der Anweisungstabelle vergleichen, um die Anweisung, die von dem Primärserver 102 angezeigt wird, zu identifizieren, wenn der Sekundärserver 104 eine der reservierten IP-Adressen als Antwort auf die Anfrage von der Fernvorrichtung 120 zurückgibt.
    IP-Adresse Anweisung
    xxx.xxx.xxx.xx0 Schalte ein
    xxx.xxx.xxx.xx1 Schalte aus
    xxx.xxx.xxx.xx2 Verbinde mit einem Server
    xxx.xxx.xxx.xx3 Verlängere ein Abfrageintervall
    xxx.xxx.xxx.xx4 Verkürze ein Abfrageintervall
    xxx.xxx.xxx.xx5 TXT-Eintragsabfrage
    xxx.xxx.xxx.xx6 Energiesparmodus
    xxx.xxx.xxx.xx7 Verlängere ein Sitzungsintervall
    xxx.xxx.xxx.xx8 Verkürze ein Sitzungsintervall
  • Wie oben gezeigt kann eine reservierte IP-Adresse eine einfache Anweisung anzeigen, welche gemeinsam für verschiedene Fernvorrichtungen verwendet werden kann. Zum Beispiel können „Schalte ein”, „Schalte aus”, „Verbinde mit einem Server”, „Verlängere ein Abfrageintervall”, „Verkürze ein Abfrageintervall” und/oder „Energiesparmodus” definiert werden, indem eine reservierte IP-Adresse verwendet wird. Einige einfache Anweisungen erfordern nicht, dass die Fernvorrichtung mit dem Primärserver 102 kommuniziert, solange eine Empfangsbestätigung nicht benötigt wird. Für „kompliziertere” Aufgaben kann anfänglich eine IP-Adresse verwendet werden, welche eine „Verbinde mit einem Server”-Anweisung anzeigt, so dass die komplizierte Aufgabe über eine sichere Kommunikationsverbindung zwischen dem Primärserver 102 und der Fernvorrichtung kommuniziert wird. Hier bedeutet „kompliziert”, dass ein Öffnen eines aufwendigen Kommunikationskanals mit dem Primärserver erforderlich ist.
  • 3A und 3B stellen Blockdiagramme bereit, welche Wechselwirkungen zwischen verschiedenen Komponenten in der Arbeitsumgebung 100 darstellen, in welcher verschiedene Arten von DNS-Informationen in dem Sekundärserver 104 verwendet werden, um eine Fernvorrichtung 120 anzuweisen.
  • Der Primärserver 102 kann einen Bedarf feststellen, auf eine Fernvorrichtung 120 zuzugreifen oder diese zu steuern, oder ein Nutzer überträgt eine Anforderung, auf die Fernvorrichtung 120 zuzugreifen. Der Primärserver 102 formuliert eine Nachricht („Aktualisierungsnachricht”), um einen Eintrag in dem Sekundärserver 104 zu aktualisieren, beruhend auf dem Bedarf des Primärservers oder der Nutzeranforderung. Die „Aktualisierungsnachricht” kann die Art von Eintrag aufweisen, der für eine Fernvorrichtung 120 erzeugt werden soll, Hostnameninformationen der Fernvorrichtung 120, Identifikationsinformationen der Fernvorrichtung 120, etc. Der Primärserver 102 überträgt die „Aktualisierungsnachricht” an den Sekundärserver 104, um die Anforderung, welche von dem Nutzer empfangen wurde, wiederzugeben. Der Sekundärserver 104 erzeugt dann gemäß der „Aktualisierungsnachricht” einen Eintrag in der Namentabelle.
  • Wie oben beschrieben ist die Fernvorrichtung 120 eingerichtet, den Sekundärserver 104 periodisch anzufragen (d. h. abzufragen), um festzustellen, ob eine bestimmte Art von Eintrag, welcher der Fernvorrichtung 120 entspricht, in dem Sekundärserver 104 existiert. Die Fern vorrichtung 120 kann eine einfache Anweisung oder Benachrichtigung basierend auf dem Ergebnis der Anfrage erkennen. Anders als ein ressourcenintensives Abfragen des Primärservers 102 verwendet ein Abfragen des Sekundärservers 104 im Allgemeinen ein leichtes Kommunikationsprotokoll zwischen dem Sekundärserver 104 und der Vorrichtung. Wie verstanden werden wird, kann ein Abfragen des Sekundärservers anstelle eines Abfragens des Primärservers die Nachfrage nach begrenzten Ressourcen in dem Primärserver, wie z. B. Bandbreite, Hardware, Bearbeitungszeit etc. wesentlich verringern. Zusätzlich kann ein Verwenden eines leichten Abfragens wie z. B. eines UDP-Abfragens eine geringere Größe und Anzahl ausgetauschter Datenpakete bewirken. Die aufwendigen Kommunikationen in einem Netzwerk können daher verringert werden, während es mehr Nutzern gestattet wird, Fernvorrichtungen schnell zu steuern, und der Primärserver kann hochskalierbar sein, um eine wachsende Anzahl von Nutzern und Fernvorrichtungen zu bedienen.
  • In einem Aspekt der beschriebenen Ausführungsformen können Kommunikationen zwischen dem Sekundärserver 104 und der Fernvorrichtung 120 gemäß des üblichen Domainnamensystems implementiert sein. Auf diese Weise kann ein Standardport zum Abfragen des Sekundärservers 104 verwendet werden, welches die Kommunikation zwischen dem Sekundärserver 104 und der Fernvorrichtung 120 ermöglicht, ohne dass jene bei der Firewall gefiltert wird.
  • In Antwort auf die Anfrage von der Fernvorrichtung 120 gibt der Sekundärserver 104 eine Antwort wieder, welche anzeigt, ob ein angeforderter Eintrag, welcher der Fernvorrichtung 120 entspricht, existiert (positiv) oder nicht (negativ). In einer alternativen Ausführungsform kann die Fernvorrichtung 120 eine Antwort nur dann empfangen, wenn der angeforderte Eintrag, welcher der Fernvorrichtung 120 entspricht, existiert. Falls die Fernvorrichtung innerhalb einer Schwellzeit keine Antwort von dem Sekundärserver empfängt (d. h. die Anfrage von der Fernvorrichtung ist verfallen), zeigt dies in dieser Ausführungsform an, dass die Antwort negativ ist.
  • Falls die Antwort negativ ist, zeigt sie an, dass der Primärserver 102 noch nichts mit der Fernvorrichtung 120 zu kommunizieren hat. Falls die Antwort jedoch positiv ist, zeigt sie an, dass die empfangene Antwort Anweisungen enthält, welche die Fernvorrichtung 120 durchführen soll. Auf den Empfang einer positiven Antwort bearbeitet die Fernvorrichtung 120 die Antwort, um die eingebetteten Anweisungen zu identifizieren. Falls die identifizierte Anweisung anzeigt, dass eine Verbindung mit dem Primärserver 102 geschaffen werden soll, baut die Fernvorrichtung 120 z. B. eine Kommunikationsverbindung mit dem Primärserver 102 basierend auf dem zugrunde liegenden Kommunikationsprotokoll auf und wartet auf weitere Anweisungen von dem Primärserver 102. Falls die identifizierte(n) Anweisung(en) anzeigt, dass ein Abfrageintervall verändert werden soll, verändert die Fernvorrichtung 120 in einem anderen Beispiel das Intervall für das Abfragen des Sekundärservers 104 und fragt den Sekundärserver 104 gemäß der Änderung ab.
  • Zu einer vorbestimmten Zeit nach dem Übertragen der Aktualisierungsnachricht kann der Primärserver 102 eine andere Nachricht übertragen, um den erzeugten Eintrag in dem Sekundärserver 104 zu löschen. Die vorbestimmte Zeit kann basierend auf dem Abfrageintervall bestimmt werden. Falls eine Fernvorrichtung 120 einen erzeugten Eintrag in Antwort auf ein Abfragen erhält, sollte der erzeugte Eintrag z. B. nicht für das nächste Abfragen zurückbleiben. In einer Ausführungsform kann der Sekundärserver 104 die Zeitinformationen, wann ein Eintrag erzeugt wurde, und die letzte Abfragezeit vergleichen, um zu bestimmen, ob der Eintrag verfallen sollte oder als eine Antwort auf eine Anfrage von der Fernvorrichtung 120 zurückgegeben werden sollte.
  • 4 ist ein Flussdiagramm einer beispielhaften Fernvorrichtungsroutine 400 zum Empfangen von Anweisungen eines Primärservers über einen Sekundärserver. Man nehme wie in den 2A, 2B an, dass der Sekundärserver ein Sekundärserver ist, welcher eine Namentabelle von Fernvorrichtungen hält. Die hier beschriebenen Ausführungsformen sind nur zum Zwecke der Diskussion verwendet und sollten nicht als begrenzend betrachtet werden.
  • Die Fernvorrichtung fragt beginnend bei Block 402 den Sekundärserver 104 zu einer vorbestimmten Zeit an, um zu bestimmen, ob ein Eintrag, welcher der Fernvorrichtung entspricht, erzeugt wurde. Beispielsweise kann die Fernvorrichtung bei jedem Abfrageintervall eine Anfrage übertragen, ob eine bestimmte Art von Eintrag in der Namentabelle erzeugt wurde. Das Abfrageintervall kann vorher durch den Primärserver 102 definiert und eingestellt werden. Im Allgemeinen wird das Abfrageintervall beruhend auf der Anzahl von Nutzern, der Anzahl von Fernvorrichtungen, der Kapazität des Sekundärservers usw. bestimmt. Wie verstanden werden wird, wird das Abfrageintervall so bestimmt, dass der Nutzer keine unerwünschte Verzögerung beim Steuern oder Zugreifen auf die Fernvorrichtungen erlebt. Es muss verstanden werden, dass verschiedene beschriebene Ausführungsformen ein solch häufiges Abfragen gestat ten, dass Kommunikationen zwischen einem Nutzer und dem Primärserver so erscheinen können, als wären sie in Echtzeit.
  • Bei Block 404 empfängt die Fernvorrichtung von dem Sekundärserver eine Antwort auf die Anfrage. Beim Entscheidungsblock 406 wird bestimmt, ob die Antwort positiv ist. In einer Ausführungsform kann jede positive Antwort, d. h. eine Antwort, welche einige Werte enthält, anzeigen, dass ein Eintrag, welcher der Fernvorrichtung entspricht, in der Namentabelle existiert. Auf ähnliche Weise kann eine Antwort mit „keiner Information” anzeigen, dass ein Eintrag, welcher der Fernvorrichtung entspricht, in der Namentabelle nicht existiert oder verfallen ist. In einer Ausführungsform kann der Primärserver 102 eine „Aktualisierungsnachricht” formulieren, welche einige Anweisungen enthält, die in den Eintrag, welcher der Vorrichtung entspricht, eingebettet werden können. Wie oben erwähnt, kann ein DNS-Eintrag, wie z. B. ein TXT-Eintrag oder ein CNAME-Eintrag verwendet werden, um Anweisungen von dem Primärserver zu enthalten.
  • Falls bei Entscheidungsblock 406 bestimmt wird, dass die Antwort positiv ist, da die Antwort einige Informationen enthält, wird die Fernvorrichtung die Antwort bei Block 408 bearbeiten. In einer Ausführungsform kann der Primärserver 102 Bearbeitungsregeln für Fernvorrichtungen definieren, um die Antwort, welche von dem Sekundärserver empfangen wurde, zu bearbeiten. Die Bearbeitungsregeln werden auch verwendet, wenn der Primärserver 102 eine Aktualisierungsnachricht formuliert, um den Sekundärserver zu veranlassen, einen Eintrag in der Namentabelle zu erzeugen. Die Bearbeitungsregeln können spezifizieren, welche Informationen in der Namentabelle durch den Primärserver 102 verwendet werden sollen, um die Nutzeranfrage wiederzugeben, oder ähnliches. Bei Block 410 identifiziert die Fernvorrichtung Anweisung(en) aus der bearbeiteten Antwort.
  • Falls die Bearbeitungsregeln spezifizieren, dass eine Menge von reservierten IP-Adressen verwendet werden soll, um die Fernvorrichtung anzuweisen, kann jede reservierte IP-Adresse z. B. bestimmt sein, eine spezifische Anweisung darzustellen. In diesem Beispiel kann die Fernvorrichtung die IP-Adresse, welche in der Antwort enthalten ist, mit der Menge der reservierten IP-Adressen vergleichen, um die bestimmte Anweisung zu identifizieren. Falls die IP-Adresse mit einer der reservierten Adressen übereinstimmt, kann die Fernvorrichtung die Tabelle der reservierten IP-Adressen suchen, in welcher die bestimmte Anweisung, welche durch die IP-Adresse dargestellt wird, gefunden werden kann. Falls die Bearbeitungsregeln spezifizieren, dass eine bestimmte Art von Eintrag, z. B. ein TXT-Eintrag verwendet wird, um die Fernvorrichtung anzuweisen, kann die Fernvorrichtung in einem anderen Beispiel erwarten, dass die Antwort den Wert der bestimmten Art von Eintrag enthält und die Antwort parsen, um die Anweisung aus der bestimmten Art von Eintrag zu extrahieren.
  • Falls bei Entscheidungsblock 406 bestimmt wird, dass die Antwort nicht positiv ist, kann die Fernvorrichtung annehmen, dass der Primärserver 102 keinen Bedarf nach Kommunikation angezeigt hat. Die Fernvorrichtungsroutine 400 kehrt zu dem Schritt zurück, welcher durch Block 402 angezeigt wird, in welchem die Fernvorrichtung den Sekundärserver periodisch anfragt. Die Fernvorrichtungsroutine 400 wiederholt die oben genannten Schritte, bis die Fernvorrichtung eine positive Antwort erhält, welche anzeigt, dass ein Eintrag in der Namentabelle erzeugt wurde.
  • Die Fernvorrichtung kann die identifizierte Anforderung bei Block 412 implementieren. Eine der identifizierten Anweisungen kann eine Anweisung sein, eine Kommunikationsverbindung mit dem Primärserver 102 aufzubauen. In diesem Fall können der Primärserver 102 und die Fernvorrichtung mehrfach (z. B. Shake Hands, etc.) über die Firewall austauschen, um einen Kommunikationskanal beruhend auf einem aufwendigen Kommunikationsprotokoll (z. B. SSL/TSL) aufzubauen. Es ist zu bemerken, dass es viele andere Wege für den Primärserver gibt, eine Fernvorrichtung anzuweisen. Wie in größerem Detail mit Hinblick auf 6 beschrieben werden wird, benachrichtigt der Primärserver in einer Ausführungsform eine Fernvorrichtung von einem Bedarf nach Kommunikation mit dem Primärserver, indem ein Eintrag für die Vorrichtung in dem Sekundärserver erzeugt wird.
  • Bei Entscheidungsblock 414 kann die Fernvorrichtung bestimmen, ob die identifizierte Anweisung eine Bestätigung oder Benachrichtigung erfordert. In einigen Fällen kann der Primärserver 102 wünschen, eine Bestätigung der Initiierung oder des Abschlusses der Nutzeranforderung zu erhalten. Falls die Bestätigung benötigt wird, kann die Fernvorrichtung eine ordnungsgemäße Bestätigung bei Block 416 an den Primärserver 102 übertragen. Auf ähnliche Weise kann die Fernvorrichtung im Falle eines Misserfolgs beim Durchführen der Anweisung eine Mitteilung des Misserfolgs an den Primärserver 102 übertragen. Falls die Bestätigung nicht benötigt wird, oder nach dem Übertragen der Bestätigung kehrt die Routine zu einem Block 402 zurück und wiederholt die oben genannten Schritte.
  • 5 ist ein Flussdiagramm einer beispielhaften, dem Fernzugriff dienenden Routine 500 zum Zugreifen auf eine Fernvorrichtung und zum Steuern derselben. Wie in 4 kann angenommen werden, dass die Fernvorrichtungen hinter einer Firewall z. B. einem gesicherten Router gelegen sind, welche eingerichtet ist, die Fernvorrichtungen daran zu hindern, Verkehr von einer entfernten Quelle zu empfangen, bevor eine sichere Kommunikationsverbindung aufgebaut wurde, d. h. die Firewall für den Verkehr „geöffnet” ist. Darüber hinaus kann angenommen werden, dass der Primärserver 102 nicht dazu in der Lage ist, mit der Fernvorrichtung zu kommunizieren, es sei denn, dass die Fernvorrichtung eine sichere Kommunikationsverbindung startet und erfolgreich eine sichere Kommunikationsverbindung mit dem Primärserver 102 verhandelt.
  • Der Primärserver 102 erfasst beginnend bei Block 502 ein Ereignis, welches einen Bedarf nach Kommunikation mit einer Fernvorrichtung bewirkt. Solch ein Ereignis kann ausgelöst werden, wenn der Primärserver 102 von einem Nutzer eine Anforderung empfängt, eine Fernvorrichtung zu steuern, oder wenn der Primärserver eine Vorrichtung direkt anweisen muss, Maßnahmen wie ein Herunterladen und Installieren einer neuen Version einer Softwareanwendung durchzuführen. Wie von einem Durchschnittsfachmann verstanden werden wird, kann eine Nutzeranforderung in verschiedenen Formen gemacht werden, wie z. B. Stimme, Text, elektronische Nachricht oder ähnliches. Beim Empfang der Anforderung können Informationen über den Nutzer und die in Verbindung stehenden Fernvorrichtungen aus der Datenbasis 212 erhalten werden. Zum Beispiel können die Informationen über den Nutzer Login-Informationen, ein Passwort, ein Kundenprofil, eine Kundenpräferenz und eine vorangegangene Geschichte von Fernvorrichtungssteuerungen aufweisen. In einer Ausführungsform kann der Primärserver 102, nachdem der Nutzer sich eingeloggt hat, eine grafische Nutzerschnittstelle präsentieren, welche eine Liste von für den Nutzer einsatzbereiten Vorrichtungen aufweist. Der Nutzer kann begrenzte Zugriffsrechte auf einige Fernvorrichtungen besitzen. Falls die Fernvorrichtung ein Alarmsystem ist, kann es dem Nutzer beispielsweise nicht gestattet sein, die Fernvorrichtung auszuschalten. Der Primärserver 102 kann auch Zugriffsrechte auf jede einsatzbereite Vorrichtung auflisten, so dass der Nutzer alle einsatzbereiten Optionen sehen kann, auf Fernvorrichtungen zuzugreifen oder diese zu steuern.
  • Bei Block 504 kann der Primärserver 102 eine „Aktualisierungsnachricht” formulieren, welche Informationen enthält, um die Nutzeranforderung oder die Anweisungen des Primärservers wiederzugeben, wie z. B. einen Hostnamen der Fernvorrichtung, welche in der Anforde rung identifiziert ist, eine Art von Eintrag in einer Namentabelle, ein Wert des Eintrags, welcher aktualisiert werden soll, etc. Die „Aktualisierungsnachricht” wird verwendet werden, um den Sekundärserver zu veranlassen, Namentabellen zu aktualisieren. Wie von einem Durchschnittsfachmann verstanden werden wird, ist die Aktualisierungsnachricht als ein Beispiel beschrieben. Jede Art von Informationen kann formuliert werden, solange die formulierten Informationen den Sekundärserver dazu veranlassen, die Namentabellen zu aktualisieren. Bei Block 506 wird die formulierte „Aktualisierungsnachricht” an den Sekundärserver übertragen. Nachdem der Sekundärserver die „Aktualisierungsnachricht” empfangen hat, kann der Sekundärserver die Namentabelle aktualisieren, indem er einen Eintrag, welcher der Fernvorrichtung entspricht, erzeugt, wie in der „Aktualisierungsnachricht” angezeigt.
  • Schließlich wird der Fernvorrichtung diese Aktualisierung in der Namentabelle durch ein periodisches Anfragen des Sekundärservers über eine leichte Kommunikationsverbindung bewusst. Dies bedeutet, dass der Sekundärserver eine Antwort auf die Anfrage mit dem erzeugten Eintrag zurückgibt, welche anzeigt, dass der Primärserver 102 mit der Fernvorrichtung zu kommunizieren wünscht, z. B. um ihr zusagen, dass sie eine Aufgabe durchführen soll, oder um ihr eine Anweisung(en) zu geben. Beim Empfang einer Antwort von dem Sekundärserver wird die Fernvorrichtung Daten gemäß der Anweisungen, welche aus der Antwort identifiziert wurden, an den Primärserver 102 übertragen.
  • In einer Ausführungsform kann die Antwort spezifische Anweisungen für die Fernvorrichtung enthalten, so dass die Fernvorrichtung die Anweisungen implementieren kann, ohne mit dem Primärserver 102 zu kommunizieren. Alternativ kann die Antwort Anweisungen enthalten, welche die Fernvorrichtung anweisen, mit dem Primärserver 102 zu kommunizieren, während sie die Anweisungen implementiert. In einer anderen Ausführungsform kann die Antwort ein einfaches Flag sein, welches wiedergibt, ob der Primärserver 102 zu kommunizieren wünscht oder nicht. Falls die Fernvorrichtung eine positive Antwort erhält, zeigt der Primärserver 102 beispielsweise einen Bedarf nach Kommunikation für weitere Anweisungen an. Falls die Fernvorrichtung eine negative Antwort erhält, hat der Primärserver 102 den Sekundärserver nicht kontaktiert, um einen Bedarf nach einer Kommunikation mit der Fernvorrichtung anzuzeigen.
  • Bei Block 508 kann der Primärserver 102 Daten von der Fernvorrichtung empfangen. Bei Entscheidungsblock 510 wird bestimmt, ob die Fernvorrichtung eine Verbindungsinitiierung für weitere Kommunikation mit dem Primärserver 102 gesendet hat. Falls bestimmt wird, dass die Verbindung von der Fernvorrichtung angefordert wurde, kann der Primärserver 102 mit der Fernvorrichtung verhandeln und wie bei Block 502 dargestellt eine Verbindung aufbauen. Bei Block 514 überträgt der Primärserver 102 die Nutzeranforderung oder andere Anweisungen an die Fernvorrichtung. Nach dem Übertragen der Anforderung (bei Block 514) oder falls bestimmt wurde, dass die Verbindung nicht angefordert wurde (bei Entscheidungsblock 510), kann der Primärserver 102 bei Block 516 eine Nachricht herausgeben, um den aktualisierten Eintrag in der Namentabelle zu löschen. Die Routine schließt bei Block 518 ab.
  • 6 ist ein Flussdiagramm einer anderen beispielhaften Fernvorrichtungsroutine 600 zum Erkennen eines Bedarfs nach Kommunikation mit dem Primärserver aus der Namentabelle, wobei eine Kommunikationsverbindung zwischen der Vorrichtung und dem Primärserver nur dann aufgebaut wird, wenn ein Eintrag für die Vorrichtung in der Namentabelle in dem Sekundärserver erzeugt wurde.
  • So wie bei den 4 und 5 kann angenommen werden, dass die Fernvorrichtungen hinter einer Firewall gelegen sind, z. B. einem gesicherten Router, welche eingerichtet ist, um die Fernvorrichtungen daran zu hindern, Verkehr von einer entfernten Quelle zu empfangen, bevor eine sichere Kommunikationsverbindung aufgebaut wurde. Zusätzlich kann angenommen werden, dass ein Abfrageintervall für die Fernvorrichtungen definiert ist, um den Sekundärserver periodisch abzufragen, um zu bestimmen, ob der Primärserver 102 einen Bedarf nach Kommunikation angezeigt hat. Es wird verstanden werden, dass das Abfrageintervall jede Zeitdauer sein kann, solange der Nutzer keine unerwünschte Verzögerung erlebt, was ein Steuern der Fernvorrichtung oder ein Zugreifen darauf betrifft. Der Primärserver 102 veranlasst den Sekundärserver, einen Eintrag für eine bestimmte Fernvorrichtung in der Namentabelle zu erzeugen, falls der Primärserver 102 mit der bestimmten Fernvorrichtung zu kommunizieren wünscht.
  • Die Fernvorrichtung fragt beginnend bei Block 602 bei dem Sekundärserver zu vorbestimmten Zeiten an, ob ihr Eintrag in der Namentabelle existiert. Zum Beispiel kann die Fernvorrichtung bei jedem Abfrageintervall eine Anfrage übertragen, welche überprüft, ob ein Eintrag, welcher der Fernvorrichtung entspricht, in der Namentabelle erzeugt worden ist und noch nicht verfallen ist. Bei Block 604 empfängt die Fernvorrichtung von dem Sekundärserver eine Antwort auf die Anfrage. Bei Entscheidungsblock 606 wird bestimmt, ob die Ant wort anzeigt, dass ein Eintrag, welcher der Fernvorrichtung entspricht, in der Namentabelle existiert. In einer Ausführungsform kann eine positive Antwort, d. h. eine Antwort, welche einige Werte enthält, anzeigen, dass ein Eintrag, welcher der Fernvorrichtung entspricht, in der Namentabelle existiert. In einer Ausführungsform kann die Antwort eine einfache Anzeige eines Bedarfes nach Kommunikation sein. Zum Beispiel kann die Vorrichtung annehmen, dass der Primärserver 102 mit der Vorrichtung zu kommunizieren wünscht, falls die Antwort positiv ist, und anschließend versuchen, mit dem Primärserver 102 wegen weiterer Anweisungen zu kommunizieren. Falls die Antwort negativ ist, was einen fehlenden ausstehenden Bedarf nach Kommunikation anzeigt, wird die Vorrichtung auf das nächste Abfrageintervall warten. Dies kann mit einem Dritten gehörenden Sekundärservern gut funktionieren, welche der Primärserver 102 nicht direkt veranlassen kann, eine bestimmte Art von DNS-Eintrag für die Fernvorrichtung zu aktualisieren. Das heißt, dass der Primärserver 102 indirekt eine Anforderung nach einem Aktualisieren eines Eintrags in der Namentabelle als eine Standard-DNS-Anforderung für eine Hostnamenauflösung an den Sekundärserver übertragen kann.
  • Falls bestimmt wird, dass der Eintrag für die Fernvorrichtung in der Namentabelle nicht existiert, kehrt die Routine zu Block 602 zurück, wo die Fernvorrichtung auf die Anweisung des Primärservers durch ein periodisches Anfragen des Sekundärservers wartet. Die Routine wiederholt die oben genannten Schritte, bis die Fernvorrichtung eine positive Antwort erhält, welche anzeigt, dass der Primärserver 102 mit der Fernvorrichtung zu kommunizieren wünscht.
  • Falls bestimmt wird, dass der Eintrag für die Fernvorrichtung in der Namentabelle existiert, wird die Fernvorrichtung annehmen, dass der Primärserver 102 mit der Fernvorrichtung zu kommunizieren wünscht, und eine Kommunikationsverbindung mit dem Primärserver 102 bei Block 608 aufbauen. Der Primärserver 102 und die Fernvorrichtung können einen Kommunikationskanal basierend auf dem zugrunde liegenden Kommunikationsprotokoll aufbauen. Bei Block 610 empfängt die Fernvorrichtung von dem Primärserver 102 Anweisungen über den aufgebauten Kommunikationskanal. Bei Block 612 implementiert die Fernvorrichtung die empfangenen Anweisungen. Anschließend ist die Fernvorrichtung für eine nächste Anfrage bereit, welche die Existenz eines neuen Eintrags in der Namentabelle überprüft. Die Routine kehrt zu einem Block 602 zurück, wo die Fernvorrichtung den Sekundärserver zu einer vorbestimmten Zeit anfragt, ob ihr Eintrag in der Namentabelle existiert. Die Routine 600 wiederholt die oben genannten Schritte.
  • 7 ist ein Flussdiagramm einer adaptiven Fernvorrichtungsabfrageroutine 700 zum Erhalten von Anweisungen durch den Sekundärserver über eine nahezu beständige Verbindung zwischen der Fernvorrichtung und dem Sekundärserver. Wie in den 5 und 6 kann angenommen werden, dass der Sekundärserver eine Namentabelle hält, welche der Primärserver 102 und die Fernvorrichtung verwenden, bevor eine tatsächliche Kommunikationsverbindung zwischen der Fernvorrichtung und dem Primärserver 102 aufgebaut wird. Wenn der Primärserver 102 mit der Fernvorrichtung zu kommunizieren wünscht, erzeugt der Primärserver 102 einen Eintrag in der Namentabelle, welcher der Fernvorrichtung entspricht. Über eine verbindungslose Kommunikation fragt die Fernvorrichtung den Sekundärserver periodisch ab, um den in der Namentabelle erzeugten Eintrag zu detektieren. Zum Zwecke der Diskussion kann angenommen werden, dass die Fernvorrichtung eingerichtet ist, um während eines Verbindungsintervalls auf eine Antwort von dem Sekundärserver zu warten. Zusätzlich kann angenommen werden, dass das Verbindungsintervall und das Abfrageintervall von dem Primärserver 102 definiert oder von diesem aktualisiert sind. Bei jedem Abfrageintervall kann die Fernvorrichtung bei dem Sekundärserver nach einer bestimmten Art von Eintrag in der Namentabelle anfragen. Wenn ein Verbindungsintervall verfällt, läuft die vorherige Verbindung ab und die Fernvorrichtung öffnet erneut eine Verbindung mit dem Sekundärserver.
  • Die Fernvorrichtung öffnet beginnend bei Block 702 eine Verbindung mit einem Sekundärserver, um eine Anfrage nach einer Antwort zu übertragen und die Antwort zu empfangen. Die Fernvorrichtung hält die Verbindung für ein Verbindungsintervall offen, während sie auf das Eintreffen der Antwort von dem Sekundärserver wartet. Während sie die Verbindung offen hat, kann die Fernvorrichtung bei Block 704 bei jedem Abfrageintervall eine Anfrage übertragen, um zu bestimmen, ob ein Eintrag in der Namentabelle erzeugt wurde. Bei Entscheidungsblock 706 wird bestimmt, ob eine Antwort von dem Sekundärserver empfangen wurde. In einer Ausführungsform antwortet der Sekundärserver nur auf eine Anfrage der Fernvorrichtung, falls ein Eintrag durch den Primärserver 102 erzeugt wurde. Daher wartet die Fernvorrichtung in dem verbindungsoffenen Zustand auf eine Antwort. Falls eine Antwort (d. h. eine Antwort, welche einige Werte enthält) von dem Sekundärserver empfangen wird, zeigt sie an, dass ein Eintrag, welcher der Fernvorrichtung entspricht, in der Namentabelle existiert.
  • Falls keine Antwort empfangen wird, kann die Fernvorrichtung bei Entscheidungsblock 708 überprüfen, ob eine Verbindung verfallen ist. Falls die Verbindung nicht verfallen ist, kehrt die Routine 700 zu Entscheidungsblock 706 zurück und wartet, bis der Sekundärserver eine Antwort zurückgibt oder die Verbindung verfällt. Falls die Verbindung verfallen ist, kehrt die Routine 700 zu Block 702 zurück, wo die Vorrichtung eine Verbindung mit dem Sekundärserver erneut öffnet und die oben genannten Schritte wiederholt. Auf diese Weise ist eine Verbindung zwischen dem Sekundärserver und der Fernvorrichtung nahezu beständig, obwohl das Kommunikationsprotokoll ein Verbindungsloses ist. In einem vorteilhaften Aspekt dieser Ausführungsform kann ein Datenverkehr zwischen dem Sekundärserver und der Fernvorrichtung verringert werden, weil der Sekundärserver nicht für jede Anfrage eine Antwort überträgt. Der Sekundärserver überträgt nur, wenn ein Eintrag für die Fernvorrichtung erzeugt wurde.
  • Falls bei Entscheidungsblock 706 bestimmt wird, dass eine Antwort von dem Sekundärserver empfangen wurde, wird die Fernvorrichtung die Antwort bei Block 710 bearbeiten. Falls die Antwort von dem Sekundärserver zurückgegeben wird, kann sie anzeigen, dass die Vorrichtung eine bestimmte Aufgabe oder eine Anweisung durchführen soll. Bei Block 712 identifiziert die Fernvorrichtung eine Anforderung (Anweisungen) aus der bearbeiteten Antwort. Falls die Bearbeitungsregeln spezifizieren, dass eine Menge von reservierten IP-Adressen verwendet werden soll, um die Fernvorrichtung anzuweisen, kann die Fernvorrichtung beispielsweise die IP-Adresse, welche in der Antwort enthalten ist, mit der Menge von reservierten IP-Adressen vergleichen, um die spezifische Anforderung (Anweisung) zu identifizieren. Falls die Bearbeitungsregeln in einem anderen Beispiel spezifizieren, dass eine bestimmte Art von Eintrag, z. B. ein TXT-Eintrag verwendet wird, um die Fernvorrichtung anzuweisen, kann die Fernvorrichtung erwarten, dass die Antwort den Wert der bestimmten Art von Eintrag enthält und die Antwort parsen, um die Anweisung(en) aus dem Eintrag zu extrahieren. Die Fernvorrichtung kann die identifizierte(n) Anweisung(en) bei Block 714 durchführen. Es muss angemerkt werden, dass eine der identifizierten Anforderungen eine Anforderung nach dem Aufbauen einer Verbindung sein kann. Die Routine 700 kehrt zu Entscheidungsblock 708 zurück, wo bestimmt wird, ob die Verbindung zwischen dem Sekundärserver und der Fernvorrichtung verfallen ist. Die Routine 700 wiederholt die oben genannten Schritte.
  • Zusammenfassung
  • Es wird ein hochskalierbarer Primärserver zum Bedienen einer wachsenden Anzahl von Nutzern und Fernvorrichtungen bereitgestellt. Anstelle eines Kommunizierens mit einem Primärserver unter Verwendung eines aufwendigen Kommunikationsprotokolls kommuniziert eine Fernvorrichtung mit einem Sekundärserver unter Verwendung eines weniger aufwendigen Protokolls, um zu bestimmen, ob der Primärserver wünscht, Steuerungsanweisungen an die Fernvorrichtung zu kommunizieren. Wenn der Primärserver eine Anforderung hat, die Fernvorrichtung zu steuern, erzeugt der Primärserver einen Tabelleneintrag an den Sekundärserver, um die Fernvorrichtung von einer Anforderung zum Kommunizieren zu unterrichten. Auf ein Abfragen des Sekundärservers und Erfahren von dem erzeugten Tabelleneintrag hin stellt die Fernvorrichtung eine Kommunikationsverbindung mit dem Primärserver her, um die Anweisungen zum Steuern der Fernvorrichtung zu empfangen. Auf diese Weise wird der für eine Kommunikation mit dem Primärserver benötigte Ressourcenbedarf wesentlich verringert.

Claims (53)

  1. Verfahren zum Aufbau einer Kommunikationsverbindung zwischen einer Vorrichtung und einem Primärserver, die es einem Nutzer ermöglicht, die Vorrichtung zu steuern, wobei Kommunikationen zwischen dem Primärserver und der Vorrichtung ein rechnerisch aufwendiges Protokoll verwenden, wobei das Verfahren an dem Primärserver Folgendes umfasst: Detektieren eines Ereignisses, das der Vorrichtung zu kommunizieren ist; auf das Detektieren des Ereignisses Bewirken, dass ein Sekundärserver einen Eintrag, welcher der Vorrichtung entspricht, in einer Namentabelle, die von dem Sekundärserver erhalten wird, einträgt, wobei die Vorrichtung dafür eingerichtet ist, ein rechnerisch einfaches Protokoll zu verwenden, um den Sekundärserver zu einer Detektion abzufragen, dass ein Eintrag, welcher der Vorrichtung entspricht, in die Namentabelle eingetragen wurde; Empfangen einer Verbindungsinitiierung von der Vorrichtung zum Aufbau einer Kommunikationsverbindung in Reaktion darauf, dass die Vorrichtung den Eintrag in der Namentabelle detektiert hat; und nach Empfangen der Verbindungsinitiierung Aufbauen der Kommunikationsverbindung mit der Vorrichtung unter Verwendung des rechnerisch aufwendigen Protokolls.
  2. Verfahren nach Anspruch 1, wobei das zu kommunizierende Ereignis ausgelöst wird, wenn eine Nutzeranforderung zur Steuerung der Vorrichtung empfangen wird.
  3. Verfahren nach Anspruch 1, wobei das zu kommunizierende Ereignis ausgelöst wird, wenn ein interner Bedarf zur Kommunikation mit der Vorrichtung detektiert wird.
  4. Verfahren nach Anspruch 3, wobei der interne Bedarf ein Update einer Anwendung in der Vorrichtung ist.
  5. Verfahren nach Anspruch 1, das weiterhin umfasst, dass der Sekundärserver veranlasst wird, den Eintrag mit einem Timestamp zu versehen, wenn der Eintrag in die Namentabelle eingetragen wird.
  6. Verfahren nach Anspruch 5, wobei der Eintrag so konfiguriert ist, dass er nach einem vorbestimmten Zeitintervall verfällt, und wobei das Verfahren weiterhin umfasst, dass der Sekundärserver veranlasst wird, den Eintrag aus der Namentabelle zu löschen, wenn der Eintrag verfallen ist.
  7. Verfahren nach Anspruch 1, das weiterhin umfasst, dass der Sekundärserver veranlasst wird, den Eintrag aus der Namentabelle zu löschen, wenn die Kommunikationsverbindung mit der Vorrichtung aufgebaut ist.
  8. Verfahren nach Anspruch 2, wobei das Veranlassen des Sekundärservers, den Eintrag einzutragen, ein Formulieren einer Nachricht an den Sekundärserver umfasst, wobei die Nachricht die Nutzeranforderung zur Steuerung des Servers wiedergibt.
  9. Verfahren nach Anspruch 8, wobei das Formulieren der Nachricht ein Extrahieren einer Anweisung aus der Nutzeranforderung umfasst, wobei die Anweisung durch die Vorrichtung implementiert werden kann, um die Nutzeranforderung zur Steuerung der Vorrichtung zu erfüllen.
  10. Verfahren nach Anspruch 9, wobei die Anweisung in dem Eintrag, welcher der Vorrichtung entspricht, enthalten ist.
  11. Verfahren nach Anspruch 1, wobei die Vorrichtung durch eine Firewall geschützt ist, die eingehende Daten filtert.
  12. Verfahren nach Anspruch 11, wobei das rechnerisch aufwendige Protokoll ein beständiges Transmission Control Protocol ist, wobei das Verfahren weiterhin ein Beenden der Kommunikationsverbindung umfasst, nachdem eine Information an die Vorrichtung kommuniziert wird, eine Nutzeranforderung zur Steuerung der Vorrichtung auszuführen.
  13. Verfahren nach Anspruch 11, wobei das rechnerisch aufwendige Protokoll ein Secure Socket Layer Protocol ist.
  14. Verfahren nach Anspruch 11, wobei das rechnerisch aufwendige Protokoll ein Transport Layer Security Protocol ist.
  15. Verfahren nach Anspruch 11, wobei das rechnerisch einfache Protokoll ein verbindungsloses Protokoll ist.
  16. Verfahren nach Anspruch 11, wobei der Sekundärserver ein Domainname-Server ist.
  17. Verfahren zum Aufbau einer Kommunikationsverbindung zwischen einer Vorrichtung und einem Primärserver, wobei die Vorrichtung durch eine Firewall geschützt wird und Kommunikation zwischen dem Primärserver und der Vorrichtung ein rechnerisch aufwendiges Protokoll verwenden, wobei das Verfahren an der Vorrichtung Folgendes umfasst: Übertragen einer Anfrage an einen Sekundärserver, um zu detektieren, ob der Sekundärserver eine Namentabelle mit einem Eintrag aufweist, welcher der Vorrichtung entspricht; Empfangen einer Antwort auf die Anfrage von dem Sekundärserver; und falls der Antwort entsprechend der Server einen Eintrag, welcher der Vorrichtung entspricht, aufweist, Folgendes: Aufbauen einer Kommunikationsverbindung mit dem Primärserver, welche dem Primärserver ermöglicht, mit der Vorrichtung durch die Firewall zu kommunizieren; und Empfangen einer Information von dem Primärserver über die Kommunikationsverbindung, wobei Kommunikationen zwischen dem Sekundärserver und der Vorrichtung ein rechnerisch einfaches Protokoll verwenden.
  18. Verfahren nach Anspruch 17, wobei die Information von dem Primärserver eine Anweisung umfasst, und das Verfahren weiterhin ein Implementieren der Anweisung an der Vorrichtung umfasst.
  19. Verfahren nach Anspruch 17, wobei die Antwort auf die Anfrage eine positive oder eine negative Antwort ist, wobei die positive Antwort anzeigt, dass der Sekundärserver einen Eintrag aufweist, welcher der Vorrichtung entspricht, und die negative Antwort anzeigt, dass der Sekundärserver keinen Eintrag aufweist, welcher der Vorrichtung entspricht.
  20. Verfahren nach Anspruch 19, wobei die Vorrichtung eine Kommunikationsverbindung mit dem Primärserver aufbaut nach Empfangen einer positiven Antwort von dem Sekundärserver.
  21. Verfahren nach Anspruch 20, wobei die Kommunikationsverbindung, die zwischen dem Primärserver und der Vorrichtung aufgebaut wird, eine sichere Kommunikationsverbindung ist.
  22. Verfahren nach Anspruch 17, wobei das einfache Protokoll ein verbindungsloses Protokoll ist.
  23. Verfahren nach Anspruch 22, wobei das einfache Protokoll weniger Ressourcen im Vergleich zu dem aufwendigen Protokoll benötigt.
  24. Verfahren nach Anspruch 23, wobei die Ressourcen Bandbreite, Bearbeitungszeit und/oder Hardware umfassen.
  25. Verfahren nach Anspruch 17, wobei der Sekundärserver ein Domainname-Server ist, in dem Einträge dynamisch in die Namentabelle eingetragen werden können.
  26. Verfahren nach Anspruch 17, wobei der Sekundärserver eine Sub-Domain des Primärservers ist, der keine Verwendung des aufwendigen Protokolls zur Kommunikation mit der Vorrichtung benötigt.
  27. Verfahren nach Anspruch 17, wobei die Namentabelle nur dann einen Eintrag aufweist, welcher der Vorrichtung entspricht, wenn der Primärserver mit der Vorrichtung zu kommunizieren wünscht.
  28. Verfahren nach Anspruch 17, wobei die Vorrichtung die Kommunikationsverbindung durch Übertragen einer Verbindungsinitiierungsanforderung an den Primärserver aufbaut.
  29. Verfahren nach Anspruch 17, wobei die Vorrichtung die Anfrage an den Sekundärserver auf einer periodischen Basis überträgt.
  30. Verfahren nach Anspruch 17, wobei die Vorrichtung die Anfrage an den Sekundärserver auf einer Frequenzbasis überträgt, die ausreicht, um den Eintrag in nahezu Echtzeit zu detektieren, nachdem der Eintrag in den Sekundärserver eingetragen wurde.
  31. Netzwerksystem, das Folgendes umfasst: einen Primärserver, der dafür eingerichtet ist, eine Nutzeranforderung zum Steuern einer Vorrichtung zu empfangen, die von dem Nutzer entfernt ist; und einen Sekundärserver, der dafür eingerichtet ist, eine Namentabelle mit Tabelleneinträgen aufrechtzuerhalten, wobei auf den Sekundärserver durch Kommunikation von der Vorrichtung und von dem Primärserver zugegriffen werden kann, wobei der Sekundärserver weiterhin dafür eingerichtet ist, auf eine Anfrage von der Vorrichtung zu antworten, ob die Namentabelle einen Eintrag aufweist, welcher der Vorrichtung entspricht, wobei die Kommunikationen zwischen dem Sekundärserver und der Vorrichtung ein einfaches Protokoll verwenden; wobei der Primärserver weiterhin dafür eingerichtet ist, den Sekundärserver dazu zu veranlassen, einen Eintrag, welcher der Vorrichtung entspricht, in die Namentabelle einzutragen, wenn der Primärserver eine Nutzeranforderung zum Steuern der Vorrichtung empfangen hat, und wobei der Primärserver weiterhin dafür eingerichtet ist, eine Kommunikationsverbindung mit der Vorrichtung aufzubauen in Reaktion auf eine Detektion des Eintrags in der Namentabelle durch die Vorrichtung.
  32. Netzwerksystem nach Anspruch 31, wobei die Kommunikationsverbindung zwischen dem Primärserver und der Vorrichtung ein aufwendiges Protokoll verwendet, das größere rechnerische Ressourcen als das einfachere Protokoll erfordert.
  33. Netzwerksystem nach Anspruch 31, wobei die rechnerischen Ressourcen Netzwerkbandbreite, Hardware- und/oder Softwareressourcen umfassen.
  34. Netzwerksystem nach Anspruch 33, wobei der Primärserver dafür eingerichtet ist, eine Nachricht an den Sekundärserver zu formulieren, um eine Textaufzeichnung mit dem Eintrag in die Namentabelle einzufügen, um die Nutzeranforderung zur Steuerung der Vorrichtung wiederzugeben.
  35. Netzwerksystem nach Anspruch 34, wobei die Textaufzeichnung eine Anweisung speichert, die durch die Vorrichtung implementiert werden kann.
  36. Netzwerksystem nach Anspruch 34, wobei der Sekundärserver dafür eingerichtet ist, die Textaufzeichnung an die Vorrichtung zu übertragen, wenn er auf die Anfrage von der Vorrichtung antwortet.
  37. Netzwerksystem nach Anspruch 30, wobei der Primärserver dafür eingerichtet ist, eine Nachricht an den Sekundärserver zu formulieren, um eine Internetprotokoll (IP) Adresse mit dem Eintrag, welcher der Vorrichtung entspricht, zu umfassen, wobei die IP-Adresse eine Anweisung darstellt, die von der Vorrichtung implementiert werden kann.
  38. Netzwerksystem nach Anspruch 37, wobei der Sekundärserver dafür eingerichtet ist, die IP-Adresse an die Vorrichtung zu übertragen, wenn er auf die Anfrage von der Vorrichtung antwortet.
  39. System zum Steuern einer Fernvorrichtung über eine Kommunikationsverbindung, die von der Fernvorrichtung aufgebaut wird, wobei das System Folgendes umfasst: eine Datenspeicherkomponente zum Erhalten einer Namentabelle, wobei auf die Datenspeicherkomponente von der Fernvorrichtung kommunikativ zugegriffen werden kann; eine Rechnervorrichtung, die kommunikativ mit der Datenspeicherkomponente verbunden ist, wobei die Rechnervorrichtung dazu in der Lage ist: Detektieren eines Ereignisses zum Steuern der Fernvorrichtung; Veranlassen der Datenspeicherkomponente, in die Namentabelle einen Eintrag, welcher der Fernvorrichtung entspricht, einzutragen; Empfangen einer Anforderung von der Fernvorrichtung, um eine Kommunikationsverbindung zu öffnen in Reaktion darauf, dass die Fernvorrichtung den Eintrag in der Namentabelle detektiert hat; Öffnen der Kommunikationsverbindung mit der Fernvorrichtung auf das Empfangen der Anforderung; und Übertragen einer Information an die Fernvorrichtung, welche das Ereignis zum Steuern der Vorrichtung wiedergibt, über die Kommunikationsverbindung.
  40. System nach Anspruch 39, wobei die Rechnervorrichtung dazu in der Lage ist, die Datenspeicherkomponente zu veranlassen, den Eintrag in die Namentabelle auf eine Detektion des Ereignisses einzutragen.
  41. System nach Anspruch 40, wobei das Ereignis durch Empfangen einer Nutzeranforderung zum Steuern der Fernvorrichtung ausgelöst wird.
  42. System nach Anspruch 41, wobei die Rechnervorrichtung weiterhin dazu in der Lage ist, eine Anweisung zu identifizieren, die durch die Fernvorrichtung implementiert werden kann, um die Nutzeranforderung zum Steuern der Fernvorrichtung auszuführen.
  43. System nach Anspruch 42, wobei die Rechnervorrichtung dazu in der Lage ist, eine Nachricht an die Datenspeicherkomponente zu formulieren, um die identifizierte Anweisung mit dem Eintrag, welcher der Fernvorrichtung entspricht, zu umfassen.
  44. System nach Anspruch 43, wobei die Rechnervorrichtung weiterhin dazu in der Lage ist, die Nachricht an die Datenspeicherkomponente auf einen Empfang der Nutzeranforderung zum Steuern der Fernvorrichtung zu übertragen.
  45. System nach Anspruch 42, wobei die Rechnervorrichtung dazu in der Lage ist, eine Nachricht an die Datenspeicherkomponente zu formulieren, um eine Internet Protocol (IP) Adresse mit dem Eintrag, welcher der Fernvorrichtung entspricht, zu umfassen, wobei die IP-Adresse die identifizierte Anweisung darstellt.
  46. System nach Anspruch 42, wobei die Information, welche von der Rechnervorrichtung zu der Fernvorrichtung übertragen wird, die Anweisung enthält.
  47. Verfahren nach Anspruch 42, wobei die identifizierte Anweisung eine Änderung eines Zeitintervalls ist, in welchem die Datenspeicherkomponente eine Anfrage von der Fernvorrichtung empfängt zum Detektieren des Eintrags, welche der Fernvorrichtung entspricht.
  48. System nach Anspruch 39, wobei die Rechnervorrichtung kommunikativ mit der Datenspeicherkomponente gekoppelt ist unter Verwendung eines rechnerisch einfachen Protokolls und wobei die Kommunikationsverbindung zwischen der Fernvorrichtung und der Rechnervorrichtung ein rechnerisch aufwendiges Protokoll verwendet.
  49. System nach Anspruch 46, wobei die Datenspeicherkomponente dafür eingerichtet ist, die Anfrage von der Fernvorrichtung zu vorbestimmten Zeitintervallen zu empfangen, die häufig genug sind, so dass die Rechnervorrichtung die Verbindungsinitiierung von der Fernvorrichtung in nahezu Echtzeit empfängt, nachdem die Computervorrichtung die Nutzeranforderung empfangen hat.
  50. System nach Anspruch 39, wobei die Datenspeicherkomponente dafür eingerichtet ist, eine Anfrage von der Fernvorrichtung zu empfangen, um zu detektieren, ob die Namentabelle einen Eintrag aufweist, welcher der Fernvorrichtung entspricht, wobei die Anfrage über eine Kommunikationsverbindung empfangen wird, die mit der Fernvorrichtung geöffnet wird, wenn die Anfrage von der Fernvorrichtung empfangen wird.
  51. System nach Anspruch 50, wobei die Datenspeicherkomponente dafür eingerichtet ist, auf die Anfrage von der Fernvorrichtung nur zu antworten, wenn die Namentabelle einen Eintrag aufweist, welcher der Fernvorrichtung entspricht.
  52. System nach Anspruch 51, wobei die Kommunikationsverbindung dafür eingerichtet ist, für ein Verbindungsintervall geöffnet zu bleiben, nachdem die Anfrage von der Fernvorrichtung empfangen wird.
  53. System nach Anspruch 52, wobei das Verbindungsintervall dafür eingerichtet ist, jedes Mal neu zu starten, wenn die Datenspeicherkomponente die Anfrage von der Fernvorrichtung empfängt, während die Kommunikationsverbindung geöffnet bleibt.
DE112008003010.3T 2007-11-08 2008-11-07 Hochskalierbare Netzwerkumgebung zum Steuern von Fernvorrichtungen Active DE112008003010B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/937,442 US8316135B2 (en) 2007-11-08 2007-11-08 Highly scalable network environment for managing remote devices
US11/937,442 2007-11-08
PCT/US2008/082752 WO2009062003A2 (en) 2007-11-08 2008-11-07 Highly scalable network environment for managing remote devices

Publications (2)

Publication Number Publication Date
DE112008003010T5 true DE112008003010T5 (de) 2010-09-16
DE112008003010B4 DE112008003010B4 (de) 2017-01-12

Family

ID=40624802

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112008003010.3T Active DE112008003010B4 (de) 2007-11-08 2008-11-07 Hochskalierbare Netzwerkumgebung zum Steuern von Fernvorrichtungen

Country Status (5)

Country Link
US (1) US8316135B2 (de)
CA (1) CA2705243C (de)
DE (1) DE112008003010B4 (de)
GB (1) GB2467271B (de)
WO (1) WO2009062003A2 (de)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8756700B2 (en) 2008-01-16 2014-06-17 Verizon Patent And Licensing Inc. Custom data image building
US8291406B2 (en) * 2008-01-16 2012-10-16 Verizon Patent And Licensing Inc. Data imaging system and methods
FR2932937B1 (fr) * 2008-06-24 2011-02-11 Alcatel Lucent Routeur associe a un dispositif securise.
US8352623B2 (en) * 2008-09-17 2013-01-08 International Business Machines Corporation System for energy efficient computer management environment via tightly integrated target status and directed work sessions
US9723048B2 (en) * 2008-10-29 2017-08-01 Oracle International Corporation System and method for providing timer affinity through notifications within a session-based server deployment
US8504680B1 (en) * 2008-12-23 2013-08-06 Symantec Corporation Automatically adjusting polling intervals based on remote administrative activity
JP2012060605A (ja) * 2010-09-13 2012-03-22 Sony Corp 情報処理装置、情報処理方法、プログラムおよび情報処理システム
US9781192B2 (en) 2013-01-25 2017-10-03 Qualcomm Incorporated Device management service
US20140280865A1 (en) * 2013-03-14 2014-09-18 Cisco Technology, Inc. Network-proximity-based eventing
US9535681B2 (en) 2013-03-15 2017-01-03 Qualcomm Incorporated Validating availability of firmware updates for client devices
US9531678B1 (en) * 2013-10-15 2016-12-27 Progress Software Corporation On-premises data access and firewall tunneling
US9473506B1 (en) 2013-10-15 2016-10-18 Progress Software Corporation Secure file transfer and notification server
US20150365492A1 (en) * 2014-06-13 2015-12-17 Rockwell Automation Technologies, Inc. Systems and methods for adapting a user interface based on a profile
US9934544B1 (en) 2015-05-12 2018-04-03 CADG Partners, LLC Secure consent management system
WO2017174132A1 (en) * 2016-04-06 2017-10-12 Fluidra, S.A. Operating protean water installation devices
US10616182B1 (en) 2017-11-30 2020-04-07 Progress Software Corporation Data access and firewall tunneling using a custom socket factory
JP7279568B2 (ja) * 2019-07-31 2023-05-23 コニカミノルタ株式会社 支援サーバー、トンネル接続支援方法およびトンネル接続支援プログラム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6701329B1 (en) * 2000-09-14 2004-03-02 Microsoft Corporation Aging and scavenging of DNS resource records
US7215777B2 (en) * 2001-01-16 2007-05-08 Microsoft Corporation Sending notification through a firewall over a computer network
US20020103898A1 (en) * 2001-01-31 2002-08-01 Moyer Stanley L. System and method for using session initiation protocol (SIP) to communicate with networked appliances
KR100461593B1 (ko) * 2002-03-08 2004-12-14 삼성전자주식회사 통신망을 통한 원격제어서비스 제공장치, 시스템 및 방법
US7321935B2 (en) * 2002-06-21 2008-01-22 Intel Corporation Method and apparatus for increasing TCP/IP server responsiveness
JP4049011B2 (ja) * 2003-05-01 2008-02-20 株式会社島津製作所 分析装置の遠隔サポートシステム

Also Published As

Publication number Publication date
CA2705243A1 (en) 2009-05-14
DE112008003010B4 (de) 2017-01-12
GB201009045D0 (en) 2010-07-14
CA2705243C (en) 2018-01-02
WO2009062003A2 (en) 2009-05-14
US8316135B2 (en) 2012-11-20
US20090125627A1 (en) 2009-05-14
GB2467271A (en) 2010-07-28
WO2009062003A3 (en) 2009-09-11
GB2467271B (en) 2013-01-30

Similar Documents

Publication Publication Date Title
DE112008003010B4 (de) Hochskalierbare Netzwerkumgebung zum Steuern von Fernvorrichtungen
DE69731965T2 (de) Zugriff auf rechnerbetriebsmittel von aussen durch eine firewall
DE60029321T2 (de) Verfahren und vorrichtung zur fernbedienung eines hausnetzwerks von einem externen kommunikationsnetz
EP2826224B1 (de) Zugriff von clients auf einen serverdienst mittels einer opc-ua
DE60035830T2 (de) Netzwerkgeräteverwaltungsvorrichtung und - verfahren
DE60127968T2 (de) Bereitstellung von nahtloser benutzermobilität in einer drahtlosen netzumgebung kurzer reichweite
DE69735009T2 (de) Übertragungssystem
DE602004000808T2 (de) Verfahren zur Abfrage eines elektronischen Briefkastens
DE602005000017T2 (de) Kommunikationsvorrichtung, Verfahren und Programm zur Namenauflösung
CN101473597A (zh) 远程访问通用即插即用装置的方法和系统
DE112007003657T5 (de) Verfahren und Anordnung für ein Multimediagateway und Kommunikationsendgeräte
DE102005034972A1 (de) Verfahren zum Fernzugriff auf ein lokales Netzwerk sowie Vermittlungsknoten für die Durchführung des Verfahrens
DE202021103381U1 (de) Computerlesbares Medium und Systeme zur Implementierung eines regional zusammenhängenden Proxy-Dienstes
DE102011055403A1 (de) Entferntes Informations- und Kommunikationssystem und dessen VerbindungmverfahrenRemote information communication system and linking method thereof
DE102012217144A1 (de) Endgerät, Überwachungssystem mit dem Endgerät sowie Verfahren zur Initialisierung des Endgeräts in dem Überwachungssystem
DE60206780T2 (de) Netzwerkverbindungsvorrichtung, verbindungssystem und netzwerkverbindungsverfahren
EP1611730B1 (de) Verfahren und anordnung zur konfiguration einer einrichtung in einem datennetz
EP2680497B1 (de) Externer Zugriff auf IP-basierte Haussteuereinheit in lokalem Netzwerk
EP2898649B1 (de) Überwachungssystem mit nachrichtenweiterleitung, verfahren sowie computerprogramm
DE60320567T2 (de) Adressenverwaltungsverfahren
DE102018105495B4 (de) Verfahren und System zum Ermitteln einer Konfiguration einer Schnittstelle
EP1815665B1 (de) Verfahren zur bereitstellung einer adresse in einem daten-netzwerk
DE102005039343B4 (de) Verfahren zum Übertragen von Datenpaketen und Datenverarbeitungseinheit
DE602004007668T2 (de) Verfahren und vorrichtung zum beschleunigen des ablaufs von betriebsmitteldatensätzen in einem lokalen cache
DE10393557B4 (de) Verfahren und System für das Management von Datenerfassungsquellen

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R082 Change of representative

Representative=s name: KASTEL PATENTANWAELTE, DE

Representative=s name: KASTEL PATENTANWAELTE PARTG MBB, DE

R020 Patent grant now final
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: H04L0029060000

Ipc: H04L0065000000

R081 Change of applicant/patentee

Owner name: ARRIS INTERNATIONAL IP LTD, SALTAIRE, GB

Free format text: FORMER OWNER: ARRIS GROUP, INC., SUWANEE, GA., US

Owner name: PACE INTERNATIONAL FINANCE LIMITED, SALTAIRE, GB

Free format text: FORMER OWNER: ARRIS GROUP, INC., SUWANEE, GA., US

Owner name: ARRIS ENTERPRISES LLC, SUWANEE, US

Free format text: FORMER OWNER: ARRIS GROUP, INC., SUWANEE, GA., US

Owner name: ANDREW WIRELESS SYSTEMS UK LIMITED, GB

Free format text: FORMER OWNER: ARRIS GROUP, INC., SUWANEE, GA., US

Owner name: ANDREW WIRELESS SYSTEMS UK LIMITED,, GB

Free format text: FORMER OWNER: ARRIS GROUP, INC., SUWANEE, GA., US

R081 Change of applicant/patentee

Owner name: ARRIS INTERNATIONAL IP LTD, SALTAIRE, GB

Free format text: FORMER OWNER: ARRIS ENTERPRISES LLC, SUWANEE, GA, US

Owner name: ANDREW WIRELESS SYSTEMS UK LIMITED, GB

Free format text: FORMER OWNER: ARRIS ENTERPRISES LLC, SUWANEE, GA, US

Owner name: ANDREW WIRELESS SYSTEMS UK LIMITED,, GB

Free format text: FORMER OWNER: ARRIS ENTERPRISES LLC, SUWANEE, GA, US

R081 Change of applicant/patentee

Owner name: ANDREW WIRELESS SYSTEMS UK LIMITED, GB

Free format text: FORMER OWNER: PACE INTERNATIONAL FINANCE LIMITED, SALTAIRE, WEST YORKSHIRE, GB

Owner name: ANDREW WIRELESS SYSTEMS UK LIMITED,, GB

Free format text: FORMER OWNER: PACE INTERNATIONAL FINANCE LIMITED, SALTAIRE, WEST YORKSHIRE, GB

Owner name: ARRIS INTERNATIONAL IP LTD, SALTAIRE, GB

Free format text: FORMER OWNER: PACE INTERNATIONAL FINANCE LIMITED, SALTAIRE, WEST YORKSHIRE, GB

R081 Change of applicant/patentee

Owner name: ANDREW WIRELESS SYSTEMS UK LIMITED, GB

Free format text: FORMER OWNER: ARRIS INTERNATIONAL IP LTD, SALTAIRE, WEST YORKSHIRE, GB

Owner name: ANDREW WIRELESS SYSTEMS UK LIMITED,, GB

Free format text: FORMER OWNER: ARRIS INTERNATIONAL IP LTD, SALTAIRE, WEST YORKSHIRE, GB