-
Einführung
-
Traditionell speichern Personal-Computer Dateien lokal auf einem Medium, auf das von dem Computer, der die Dateien erzeugt oder bearbeitet direkt zugegriffen wird. Während Netzwerkzugang weiter verbreitet geworden ist, ist es möglich geworden, Dateien auf einem Remote-Netzwerk zu speichern. Das Speichern von Dateien auf einem Remote-Netzwerk, auch als Cloud-Speicherung bezeichnet, erlaubt einem Benutzer, auf die Dateien unter Verwendung eines beliebigen Geräts, das auf das Netzwerk zugreifen kann, zuzugreifen. Solche Cloud-Speichersysteme mindern den Bedarf der Benutzer für lokale Speicherkapazität und versichern den Benutzern, dass, unabhängig davon, welches Gerät auf eine Datei zugreift, auf eine aktuelle Kopie der Datei zugegriffen wird.
-
Netzwerkanwendungen, die sich auf in Cloud-Speichersystemen gespeicherte Ressourcen beziehen, fragen üblicherweise den Zustand dieser Ressourcen ab, um Änderungen an den Ressourcen zu erkennen und auf diese zu reagieren. Für jede solcher Ressourcen, die von einer Netzwerkanwendung abgefragt wird, muss das Host-Cloud-Speichersysteme auf eine Anfrage so oft antworten, wie die Netzwerkanwendung versucht, die Ressource abzufragen. Da solche Ressourcen sich unter Umständen nur selten ändern, können solche Systeme unnötige Anforderungen an die Ressourcen des Cloud-Rechnersystem erstellen, während die Netzwerkanwendung unter Umständen nicht auf eine Änderung der Ressource reagiert, bis eine Abfragezeitraum abgeschlossen ist und eine neue Anforderung für Aktualisierungen gemacht wird.
-
Kurzdarstellung
-
Somit besteht ein Bedarf in der Technik für Cloud-Speichersysteme, Meldungen über Änderungen an einer Ressource asynchron an eine Netzwerkanwendung zu übermitteln — im „Push-“ Verfahren an Netzwerkanwendungen als Reaktion auf Änderungen der Ressourcen zu übermitteln. Die Systeme und Verfahren, die hierin beschrieben sind, erlauben einem Cloud-Speichersysteme zu bestimmen, ob ein vernetztes Gerät berechtigt ist, auf eine Ressource auf dem Cloud-Speichersystem zuzugreifen, und wenn dies der Fall ist, das vernetzte Gerät für Meldungen, die als Reaktion auf Änderungen an der Ressource erzeugt werden, zu abonnieren.
-
In bestimmten Aspekten beziehen sich die hierin beschriebenen Systeme und Verfahren auf das Benachrichtigen eines vernetzten Geräts über eine Änderung an einer Ressource eines Cloud-basierten Dateisystem. Das Cloud-basierte Dateisystem erhält ein Abonnementanforderung, die einer Ressource zugeordnet ist und das abonnierende vernetzte Gerät identifiziert. In einigen Implementierungen wird die Abonnementanforderung von dem vernetzten Gerät empfangen. Als Reaktion auf die Bestimmung, dass das vernetzte Gerät zum Zugriff auf die Ressource berechtigt ist, trägt das Cloud-basierte Dateisystem ein Abonnement auf Basis der Abonnementanforderung ein. Ein Abonnement identifiziert eine Menge von einer oder mehreren Ressourcen, eine Menge von einer oder mehreren Änderungen und eine Menge von einem oder mehreren vernetzten Geräten, sodass, wenn eine Änderung von einer Menge von Änderungen an einer Ressource in der Menge von Ressourcen vorgenommen wird, das Abonnement eine Meldung an jedes vernetzte Gerät in der Menge von vernetzten Geräten erzeugt. In Reaktion auf eine solche Änderung, die von einem Benutzer, einer Anwendung oder einer anderen geeigneten Entität gemacht wird, übermittelt das Cloud-basierte Dateisystem eine Meldung bezüglich der Änderung an das vernetzte Gerät auf Basis des eingetragenen Abonnements. Die Meldung kann das Abonnement identifizieren, dem die Meldung zugeordnet ist, Informationen bereitstellen, welche die Änderung identifizieren, oder andere geeignete Informationen bereitstellen.
-
Kurzbeschreibung der Zeichnungen
-
Die hierin beschriebenen Systeme und Methoden werden in den angehängten Ansprüchen dargelegt. Für die Zwecke der Erläuterung sind jedoch verschiedene Ausführungsformen in den folgenden Zeichnungen dargelegt.
-
1 ist ein Blockdiagramm eines Cloud-Speichersystems gemäß einer veranschaulichenden Implementierung;
-
2 ist ein Blockdiagramm einer Cloud-Speicher-Funktionseinheit gemäß einer veranschaulichenden Implementierung;
-
3 ist ein Flussdiagramm eines Prozesses für das Abonnieren im Push-Verfahren für Meldungen bezüglich Änderungen, die an Cloud-Rechnerressourcen vorgenommen werden, gemäß einer veranschaulichenden Implementierung;
-
4 ist ein Flussdiagramm eines Prozesses zur Übermittlung von Push-Meldungen an einen Server, gemäß einer veranschaulichenden Implementierung;
-
5 ist ein exemplarisches Prozessdiagramm, das ein vernetztes Gerät darstellt, das Push-Meldungen von einem Cloud-Speichersysteme abonniert, gemäß einer veranschaulichenden Implementierung; und
-
6 ein Blockdiagramm eines Computergeräts, der sämtliche hier beschriebenen Prozesse durchführen kann, gemäß einer veranschaulichenden Implementierung.
-
Ausführliche Beschreibung
-
In der folgenden Beschreibung werden zum Zwecke der Erläuterung zahlreiche Einzelheiten dargelegt. Eine Fachkraft wird jedoch erkennen, dass die hierin beschriebenen Implementierungen eventuell ohne die Verwendung dieser spezifischen Einzelheiten ausgeführt werden können und dass die hierin beschriebenen Implementierungen eventuell abgeändert, ergänzt oder anderweitig geändert werden können, ohne vom Schutzumfang der hierin beschriebenen Systeme und Verfahren abzuweichen.
-
Die hierin beschriebenen Systeme und Verfahren beziehen sich auf die Übertragung von Push-Meldungen an ein vernetztes Gerät in Reaktion auf Änderungen an einer Ressource auf einem Cloud-Speichersystem. Wenn ein vernetztes Gerät berechtigt ist, auf eine Ressource auf dem Cloud-Speichersysteme zuzugreifen, dann kann das Cloud-Speichersystem dem vernetzten Gerät erlauben, Meldungen bezüglich Änderungen, die an der Ressource vorgenommen werden, zu abonnieren. Wenn in einem solchen Abonnement ein Benutzer, eine Anwendung oder eine andere geeignete Entität die Ressource ändert, kann das Cloud-Speichersystem eine Meldung im Push-Verfahren an die vernetzten Gerät senden.
-
1 ist ein veranschaulichendes Blockdiagramm eines Cloud-Speichersystems 100, das Remote-Speicherung von und Zugang zu Ressourcen bereit stellt. Ressourcen können Ordner, Textdateien, Bilddateien, Audiodateien, Videodateien, Präsentationsdateien, Tabellen, Binärdatendateien, Computeranweisungen, Hypertext-Markup-Language-(HTML-)Dateien oder andere geeignete Computerressourcen beinhalten. Ressourcen werden auf Cloud-Speichergerät 102 gespeichert, die einen Server, einen Personal-Computer, einen Mainframe, einen Cluster von Computergeräten oder ein anderes geeignetes Computergerät beinhalten kann, und das detaillierter beschrieben wird in Bezug auf 2. Ressourcen können zu dem Cloud-Speichergerät 102 über das Netzwerk 104 hochgeladen werden oder es kann auf diese zugegriffen werden. Netzwerk 104 ist ein Computernetzwerk und kann in bestimmten Implementierungen das Internet sein. Wie dargestellt, kann ein vernetztes Gerät 106 mit Cloud-Speichergerät 102 über das Netzwerk 104 zusammenwirken. Bei bestimmten Implementierungen kann es eine unterschiedliche Anzahl von Cloud-Storage-Geräten 102 oder von vernetzten Geräten 106 geben als hier dargestellt ist.
-
Ein vernetztes Gerät 106 ist ein Computergerät, das verwendet werden kann, auf Cloud-Speichergerät 102 zuzugreifen, und kann ein Personal-Laptop-Computer, ein Personal-Desktop-Computer, ein Tablet-Computer, ein Smartphone, ein Server, ein Mainframe, ein Cluster von Computergeräten oder ein anderes geeignetes Computergerät sein. Ein Benutzer kann mit dem vernetzten Gerät 106 unter Verwendung einer Direkteingabe, wie beispielsweise einer Tastatur, Maus, einem Touchscreen oder einem anderen geeigneten Eingabegerät, oder über ein Remote-Computergerät umgehen. Das vernetzte Gerät 106 kann einem Benutzer erlauben, auf Ressourcen, die auf dem Cloud-Speichergerät 102 gespeichert sind, zugreifen oder diese abzuändern, und kann von dem Benutzer, dem Administrator des Cloud-Speichergeräts 102 oder von einem Dritten verwaltet werden. Das vernetzte Gerät 106 können berechtigt sein, Push-Meldungen bezüglich Ressourcen, die auf Cloud-Speichergerät 102 gespeichert sind, zu abonnieren. In einigen Implementierungen kann ein vernetztes Gerät 106 mit Cloud-Speichergerät 102 integriert sein. In bestimmten Implementierungen kann das vernetzte Gerät 106 Informationen speichern über einen oder mehrere Benutzer, die Datenverarbeitungskapazität des vernetzten Geräts 106, eine Liste der Ressourcen auf Cloud-Speichergerät 102, zu deren Zugriff der Benutzer berechtigt ist, oder andere geeignete Informationen bezüglich der Fähigkeit eines vernetzten Geräts 106, auf Dateien, die auf Cloud-Speichergerät 102 gespeichert sind, zuzugreifen. In solchen Implementierungen kann das vernetzte Gerät 106 ausgelegt sein, wenn es sich zuerst mit Cloud-Speichergerät 102 verbindet, als Antwort auf eine Anfrage von Cloud-Speichergerät 102 oder unter anderen geeigneten Umständen, einen Teil oder die Gesamtheit solcher Informationen zu übermitteln.
-
Das Cloud-Speichersystem 100 speichert Ressourcen und erlaubt es einem Benutzer, auf die Ressourcen über ein vernetztes Gerät 106 zuzugreifen. Ein vernetzte Gerät 106 verbindet sich mit Cloud-Speichergerät 102 über das Netzwerk 104. Eine Anwendung, die auf dem vernetzten Gerät 106 installiert ist oder auf die durch dieses zugegriffen wird, kann eine auf Cloud-Speichergerät 102 gespeicherte Ressource erzeugen, auf diese zugreifen, diese bearbeiten oder diese löschen. Wenn das vernetzte Gerät 106 zum Zugriff auf eine Ressource berechtigt ist, dann kann das Cloud-Speichergerät 102 dem vernetzten Gerät 106 erlauben, die Ressource zu abonnieren, in welchem Fall das Cloud-Speichergerät 102 Meldungen bezüglich an der Ressource vorgenommener Änderungen im Push-Verfahren an das vernetzte Gerät 106 senden.
-
2 ist ein veranschaulichendes Blockdiagramm einer Cloud-Speicher-Funktionseinheit 200, die als das Cloud-Speichergerät 102 von 1 wirken kann. Die Cloud-Speicher-Funktionseinheit 200 ermöglicht es dem vernetzte Gerät 106, über das Netzwerk 104 auf Dateien zuzugreifen. Die Cloud-Speicher-Funktionseinheit 200 sendet und empfängt Daten über den Kommunikations-Port 202. Der Kommunikationsprozessor 204 identifiziert Benutzeranweisungen, die durch Kommunikations-Port 202 empfangen werden, und speichert oder übermittelt Informationen auf Basis der empfangenen Anweisungen. Der Inhalt und die Metadaten von Dateien können in der Ressourcendatenbank 206 gespeichert werden und die Benutzerinformationen können in der Benutzerdatenbank 208 gespeichert werden. Der Abonnementprozessor 210 kann Informationen über die berechtigten Abonnements in Abonnementdatenbank 212 eintragen und kann Abonnementmeldungen auf Basis von Kriterien, die in der Abonnementdatenbank 212 eingetragen sind, und von Ereignissen in der Ressourcendatenbank 206 oder der Benutzerdatenbank 208, erzeugen. Der Authentifizierungsprozessor 214 kann überprüfen, ob eine Anfrage, auf Informationen, die Cloud-Speicher-Funktionseinheit 200 zugewiesen sind, zuzugreifen oder diese zu bearbeiten, autorisiert ist.
-
Der dargestellte Kommunikations-Port 202 ist ein Netzwerk-Port, der Benutzerbefehle über das Netzwerk 104 empfängt und von Cloud-Speicher-Funktionseinheit 200 gesendete Informationen übermittelt. Der Kommunikations-Port 202 kann einen 100BASE-TX-Port, einen 1000BASE-T-Port, einen 10GBASE-T-Port, eine Wi-Fi-Antenne, eine Mobilfunkantenne oder andere geeigneten Netzwerk-Ports beinhalten. Bei bestimmten Implementierungen kann andere Anzahl von Ports geben als dargestellt. In bestimmten Implementierungen 202 kann der Kommunikations-Port eine sichere Kommunikation bereitstellen, beispielsweise unter Verwendung des Secure-Sockets-Layer-(SSL-)Protokolls, des Transport-Layer-Security-(TLS-)Protokolls oder eines anderen geeigneten Protokolls.
-
Der Kommunikationsprozessor 204 kann ein Computerprozessor sein, der Anweisungen identifiziert, die durch Kommunikations-Port 202 empfangen werden, und kann Informationen auf Basis dieser Anweisungen speichern oder übermitteln. Wenn sich ein vernetztes Gerät 106 mit der Cloud-Speicher-Funktionseinheit 200 verbindet, kann der Kommunikationsprozessor 204 in bestimmten Implementierungen einen Benutzer, der dieser Verbindung zugewiesen ist, identifizieren, indem er Anmeldedaten, die von dem Benutzer bereitgestellt werden, mit Informationen, die in der Benutzerdatenbank 208 gespeichert sind, vergleicht. Der Kommunikationsprozessor 204 kann ferner einen Benutzer, der einer eingehenden Kommunikation zugewiesen ist, aus Paket-Headern identifizieren, welche die Quelle der Kommunikation identifizieren, indem die Quelle der Kommunikation abfragt wird, oder durch ein anderes geeignetes Verfahren zur Identifizierung des Benutzers. Der Kommunikationsprozessor 204 kann auf einen Benutzerbefehl antworten, indem er Daten erzeugt, Zugang dazu bereitstellt, eine Ressource abändert oder löscht, Daten bezüglich einer Änderung an einer Ressource übermittelt, oder eine andere geeignete Maßnahme entsprechend dem Befehl ausführt. Der Kommunikationsprozessor 204 kann Befehle, die Abonnements zugewiesen sind, an Abonnementprozessor 210 weiterleiten und kann Abonnementmeldungen an ein abonniertes vernetztes Gerät 106 übertragen oder routen.
-
Die Ressourcendatenbank 206 kann ein computerlesbares und -schreibbares Medium sein, das mindestens eine Ressource speichert, die einem Cloud-Speichersysteme 100 zugewiesen ist. In einigen Implementierungen kann auf einen Teil der Ressourcendatenbank 206 über ein Remote-Netzwerk zugegriffen werden. Ein solcher Teil kann eine Drittanbieter-Datenbank sein. Ressourcen, die in Ressourcendatenbank 206 gespeichert sind, können Ordner, Textdateien, Bilddateien, Audiodateien, Videodateien, Präsentationsdateien, Tabellen, Binärdatendateien, Computeranweisungen, Hypertext-Markup-Language-(HTML-)Dateien oder andere geeignete Computerressourcen beinhalten. Die Ressourcendatenbank 206 kann auch Metadaten speichern, die jeder Ressource zugewiesen sind, welche einen Multipurpose-Internet-Mail-Extensions-(MIME-)Typ der Ressource, die Zeit, zu der die Ressource erzeugt wurde, einen oder mehrere der Ressource zugewiesene Benutzer, Client-Server 108, die zum Zugang auf die Ressource berechtigt sind, der Ressource zugewiesene Abonnements oder andere geeignete Metadaten beinhalten können. In einigen Implementierungen kann die Ressourcendatenbank 206 ferner die Menge von Änderungen aufzeichnen, die an einer Ressource vorgenommen wurden.
-
Die Benutzerdatenbank 208 kann ein computerlesbares und schreibbares Medium sein, das Informationen speichert, die zumindest einem Benutzer der Cloud-Speicher-Funktionseinheit 200 zugewiesen sind. Die Informationen können eines oder mehrere der Folgenden beinhalten: einem Benutzer zugewiesene Benutzernamen und Passwort, eine Liste der einem Benutzer zugewiesenen Ressourcen, eine Liste von zumindest einem Benutzer zugewiesenen vernetzten Gerät 106, eine Liste von zumindest einem vernetzten Gerät 106, das der Benutzer autorisiert hat, auf einem Benutzer zugewiesene Ressourcen zuzugreifen, vom Benutzer festgelegte Voreinstellungen oder andere geeignete Benutzerinformationen.
-
Der Abonnementprozessor 210 kann ein Computerprozessor sein, der gültige Abonnementanforderungen einträgt, die durch Kommunikations-Port 202 empfangen werden, und Meldungen bezüglich der Abonnements erzeugt. Wenn der Authentifizierungsprozessor 214 eine Abonnementanforderung validiert, trägt der Abonnementprozessor 210 das angeforderte Abonnement in die Abonnementdatenbank 212 ein. Der Abonnementprozessor 210 überwacht die Ressourcendatenbank 206 und die Benutzerdatenbank 208, um Ereignisse zu identifizieren, die Kriterien eines oder mehrerer Abonnements, die in der Abonnementdatenbank 212 getragen sind, erfüllen. Bei der Identifizierung eines solchen Ereignisses, erzeugt der Abonnementprozessor 210 eine Push-Meldung gemäß dem Abonnement, die von dem Kommunikationsprozessor 204 an ein oder mehrere vernetzte Geräte 106 geroutet werden kann, die von dem durch das Abonnement bestimmt werden. In einigen Implementierungen kann der Abonnementprozessor 210 über den Kommunikations-Port 202 eine Meldung direkt an ein oder mehrere vernetzte Geräte 106 übermitteln. Der Abonnementprozessor 210 kann ferner als Reaktion auf vorbestimmte Bedingungen, die das Verstreichen einer vorbestimmten Zeitdauer, das Versäumnis eines vernetzten Geräts 106, den Empfang einer Meldung, die einem Abonnement zugewiesen ist, zu bestätigen, oder andere geeignete Bedingungen beinhalten können, ein Abonnement von Abonnementdatenbank 212 löschen.
-
Die Abonnementdatenbank 212 kann ein computerlesbares und schreibbares Medium sein, das Informationen bezüglich Abonnements, die der Cloud-Speicher-Funktionseinheit 200 zugewiesen sind, speichert. Abonnementinformationen können eine Liste von vernetzten Geräten 106, die Aktualisierungen bezüglich einer Ressource abonniert haben, eine Liste der Eigenschaften von Ereignissen, die das Senden von Meldungen an die Abonnenten zur Folge haben, die Informationen, die in einer Abonnementmeldung enthalten sind, ob ein vernetztes Gerät 106 Aktualisierungen bezüglich einer Ressource oder einer Klasse von Ressourcen abonnieren darf, die Gültigkeitsdauer der einzelnen Abonnements oder andere geeignete Informationen beinhalten. Als veranschaulichendes Beispiel, wenn auf einem vernetzten Gerät 106 ein Cloud-Druckdienst läuft, der in einem bestimmten Ordner abgelegte Dokumente druckt, dann kann ein Abonnement, das in Abonnementdatenbank gespeichert 212 ist, anzeigen, dass eine Meldung an das vernetzte Gerät 106 gesendet werden soll, wenn eine Datei in dem festgelegten Ordner abgelegt wird. In ähnlicher Weise, wenn ein Abonnement identifiziert, dass ein vernetzte Gerät 106 sollte ein Update erhalten soll, wenn eine Bilddatei einem Benutzerkonto zugewiesen wird, kann eine Meldung 106 an das vernetzte Gerät gesendet werden, wenn ein Zeiger auf eine Bilddateiressource dem Benutzerkonto in Benutzerdatenbank 208 neu zugewiesen wird. In einigen Implementierungen kann die Abonnementdatenbank 212 ferner Regeln für Abonnements, welche die Kriterien für die Abonnementmeldungen, die Gültigkeitsdauer eines Abonnements auf Basis der Kriterien für Abonnementmeldungen, die Anzahl der Abonnements, die ein vernetztes Gerät 106 haben darf einschränken können, oder andere geeignete Regeln speichern.
-
Der Authentifizierungsprozessor 214 kann ein Computerprozessor sein, der unbefugten Zugriff auf, Bearbeitung von oder Abonnement von Ressourcen, die Cloud-Speicher-Funktionseinheit 200 zugewiesen sind, sperrt. Unbefugter Zugriff kann erkannt werden, indem eines oder mehrere von einer Benutzernamen- und Passwort-Kombination, Informationen zur Identifizierung eines vernetzten Geräts 106, geografischen Informationen in Verbindung mit dem vernetzten Gerät 106 oder anderen geeigneten Informationen mit entsprechenden Informationen, die in Ressourcendatenbank 206, Benutzerdatenbank 208 und Abonnementsdatenbank 212 gespeichert sind, verglichen werden. Wenn der Authentifizierungsprozessor 214 eine Anforderung, eine Ressource oder eine Klasse von Ressourcen zu abonnieren, nicht verifizieren kann, dann kann der Authentifizierungsprozessor 214 eine Meldung an den Benutzer oder einen Systemadministrator übermitteln, das vernetzte Gerät 106 sperren, das Benutzerkonto vorübergehend sperren oder eine andere vorbestimmte Maßnahme ergreifen. In bestimmten Implementierungen kann der Authentifizierungsprozessor 214 auch prüfen, ob ausgehende Meldungen an ein berechtigtes vernetztes Gerät 106 übermittelt werden. In solchen Implementierungen kann der Authentifizierungsprozessor 214 die Übertragung von Meldungen, die nicht zu einem berechtigten vernetzten Gerät 106 geroutet werden, sperren. Bei bestimmten Implementierungen, wenn ein vernetztes Gerät 106 nicht zuvor auf Ressourcen, die einem Benutzer zugewiesen sind, zugegriffen hat, dann kann der Authentifizierungsprozessor 214 Identifikationsinformationen erfordern, die eine Benutzernamen- und Passwort-Kombination, eine Identifikationsnummer, die dem Benutzer durch Senden einer Sprach- oder Textnachricht an eine zuvor von dem Benutzer bereitgestellte Telefonnummer bereitgestellt wird oder andere vorbestimmte Identifizierungsinformation beinhalten können. In einigen Implementierungen kann der Authentifizierungsprozessor 214 ein Sicherheitstoken, das von dem vernetzten Gerät 106 bereitgestellt wird, gegen Informationen verifizieren, die in einer oder mehreren von einer Dateidatenbank 206, Benutzerdatenbank 208 oder Abonnementdatenbank 212 gespeichert sind. Wenn ein vernetztes Gerät 106 nicht für den Zugriff auf Informationen berechtigt ist, dann kann der Authentifizierungsprozessor 214 verhindern, dass die Anwendung auf die Informationen zugreift, eine Meldung an den Benutzer oder einem Systemadministrator übermitteln oder eine andere geeignete Maßnahmen ergreifen. In bestimmten Implementierungen kann eine solche Meldung an den Benutzer fragen, ob der Benutzer das vernetzte Gerät 106 autorisieren möchte, auf die Informationen zuzugreifen. In bestimmten Implementierungen kann der Authentifizierungsprozessor 214 mit dem vernetzten Gerät 106 eine sichere Verbindung unter Verwendung eines Protokolls, wie beispielsweise den SSL- oder TLS-Protokollen, herstellen.
-
Die Cloud-Speicher-Funktionseinheit 200 empfängt Übermittlungen von vernetzten Geräten 106 an Kommunikations-Port 202 über das Netzwerk 104. Der Kommunikationsprozessor 204 kann eine Abonnementanforderung von einem vernetzten Gerät 106 an den Authentifizierungsprozessor 214 weiterleiten. Der Authentifizierungsprozessor 214 kann Informationen, die durch das vernetzte Gerät 106 bereitgestellt werden, mit Informationen, die in einem oder mehreren von der Ressourcendatenbank 206, Benutzerdatenbank 208 und Abonnementdatenbank 212 gespeichert sind, vergleichen, um zu bestimmen, ob das vernetzte Gerät 106 berechtigt ist, auf Informationen, die der Ressource, die in die Abonnementanforderung angegeben ist, zugewiesen sind, zuzugreifen. Wenn das vernetzte Gerät 106 erfolgreich verifiziert wird, dann kann der Authentifizierungsprozessor 214 dem Abonnementprozessor 210 erlauben, das angeforderte Abonnement in die Abonnementdatenbank 212 einzutragen. Basierend auf dem Abonnement, wenn eine Ressource erzeugt, geändert, gelöscht oder anderweitig auf diese zugegriffen wird, kann der Abonnementprozessor 210 Meldungen erstellen, die der Kommunikationsprozessor 204 gemäß den Regeln in der Abonnementdatenbank 212 im Push-Verfahren an ein oder mehrere vernetzte Geräten 106 senden kann.
-
3 ist ein veranschaulichendes Flussdiagramm eines Meldungsabonnement-Ablaufs 300. Unter Bezugnahme auf 1, der Meldungsabonnement-Ablauf 300 trägt ein Abonnement eine oder mehrere Ressourcen auf Cloud-Storage-Gerät 102 durch ein vernetzten Geräts 106 ein, sodass das Cloud-Speichergerät 102 die vernetzten Gerät 106 entsprechend dem Abonnement über Handlungen benachrichtigt, die die Ressourcen betreffen. Unter Bezugnahme auf 2, der Meldungsabonnement-Ablauf 300 beginnt mit Schritt 301, in dem der Kommunikationsprozessor 204 eine Abonnementanforderung empfängt. Die Abonnementanforderung kann bestimmte Ressourcen, eine Klasse von Ressourcen oder eine Kombination davon identifizieren. Als veranschaulichende Beispiele kann eine Abonnementanforderung eine Benutzereinstellungsdatei, Bilddateien, die einem bestimmten Benutzer zugeordnet sind, oder Tabellen, die in einem bestimmten Ordner gespeichert sind, bestimmen. Die Abonnementanforderung identifiziert ferner die Handlungen, die eine Meldung auslösen sollen, wie beispielsweise die Erzeugung einer Ressource, die Änderung einer Ressource, einen Befehl, auf die Ressource zuzugreifen, die Löschung einer Ressource oder eine andere geeignete Handlungen. Die Abonnementanforderung gibt für Push-Meldungen, die in Übereinstimmung mit dem angeforderten Abonnement erzeugt werden können, auch eine Zieladresse an, die eine Hypertext-Transfer-Protocol-(HTTP-)Adresse sein kann, oder kann einen anderen geeigneten Lieferkanal für Meldungen bereitstellen. In einigen Implementierungen kann eine Abonnementanforderung in einer Anforderung enthalten sein, eine Ressource zu erzeugen, darauf zuzugreifen oder diese zu ändern.
-
In Schritt 302 bestimmt der Authentifizierungsprozessor 214, ob die Abonnementanforderung autorisiert ist. Eine Abonnementanforderung kann autorisiert sein, wenn sie von einem autorisierten Benutzer erzeugt wird oder wenn sie mit einem vernetzten Gerät 106 verbunden ist, das von einem solchen autorisierten Benutzer autorisiert wurde. Ein autorisierter Benutzer kann der Benutzer, der die Ressource erzeugt hat, ein Benutzer mit der Berechtigung die Ressource zu ändern oder löschen oder ein anderer Benutzer sein, der in geeigneter Weise der Ressource zugewiesen ist. Ein Computergerät kann von einem Benutzer autorisiert werden, wenn der Benutzer zuvor das Computergerät autorisiert hat, auf die Ressource zuzugreifen. Der Authentifizierungsprozessor 214 kann Schritt 302 durchführen, indem er bestimmt, ob die Abonnementanforderung ein Sicherheitstoken oder andere Informationen, die nachweisen, dass die Anfrage von einem autorisierten Benutzer genehmigt wurde, bereitstellt, ob die Quelle der Anforderung ein autorisiertes Computergerät ist, ob die Zieladresse, die der Anforderung zugewiesen ist, einem autorisierten Computergerät zugewiesen ist, oder auf Basis anderer geeigneter Kriterien durchführen. Wenn der Authentifizierungsprozessor 214 nicht bestimmen kann, dass die Anforderung vorgegebene Autorisierungskriterien erfüllt, endet der Ablauf 300 damit, dass der Kommunikationsprozessor 204 in Schritt 303 Korrekturmaßnahmen veranlasst. Die Korrekturmaßnahmen können das Ablehnen der Anfrage, das Sperren der Quelle der Anforderung für Zugriff auf die Cloud-Speicher-Funktionseinheit 200, das Benachrichtigen eines Systemadministrator oder eines Benutzers, der den Ressourcen, die in der Anfrage angegebenen wurde, zugewiesen ist, oder eine andere geeignete Maßnahme beinhalten. Wenn die Authentifizierung Prozessor 214 stattdessen bestätigt, dass die Anfrage autorisiert ist, dann schließt Meldungsabonnement-Ablauf 300 mit Schritt 304 ab.
-
In Schritt 304 trägt der Abonnementprozessor 210 das angeforderte Abonnement in die Abonnementdatenbank 212 ein. Der Kommunikationsprozessor 204 kann dann die Regeln konsultieren, die in Abonnementdatenbank 212 gespeichert sind, um Meldungen gemäß dem angeforderten Abonnement zu senden, wie beschrieben in Bezug auf 4. In einigen Implementierungen kann der Abonnementprozessor 210 auch eine Gültigkeitsdauer des angeforderten Abonnements bestimmen, sodass Meldungen auf Basis des Abonnements nicht mehr gesendet werden, wenn seine Gültigkeitsdauer abgelaufen ist. In solchen Implementierungen kann ein Abonnement-Gültigkeitsdauer auf der Art der Ressource, die der Ressource zugewiesen ist, der Art der Änderung, die der Ressource zugewiesen ist, oder auf anderen geeigneten Kriterien basiert sein. In einigen Implementierungen kann Schritt 304 gefolgt sein von der Übermittlung einer Abonnementmitteilung an die Adresse, die in der Abonnementanfrage angegeben ist, welche eine Abonnementkennung, die das Abonnement eindeutig identifiziert, eine erwartete Gültigkeitsdauer des Abonnements, eine Identifizierung der Ressource oder Ressourcen, die dem Abonnement zugewiesen sind, eine Angabe des aktuellen Status der Ressource oder eine andere geeignete Informationen beinhalten. Abonnements können ebenso oder alternativ von dem anfordernden vernetzten Gerät 106 als Antwort auf das Widerrufen einer Berechtigung, auf die zugewiesene Ressource zuzugreifen, von dem vernetzten Gerät 106 durch einen Benutzer oder auf Basis anderer geeigneter Kriterien gekündigt werden. In einigen Implementierungen kann im Falle einer Kündigung des Abonnements eine Meldung an die abonnierten Adresse gesendet werden. In einigen solchen Implementierungen kann Kündigungsmeldung unter Umständen nur gesendet werden, wenn die Kündigung als Antwort auf ein vorbestimmtes Kriterium erfolgt, wie beispielsweise das Widerrufen der Berechtigung des abonnierten Servers, auf die Ressource, die dem Abonnement zugewiesen ist, zuzugreifen.
-
4 ist ein veranschaulichendes Flussdiagramm eines Push-Meldungsablaufs 400. Der Push-Meldungsablauf 400 erzeugt Push-Meldungen auf Basis von Abonnements, wie beispielsweise der in Meldungsabonnement-Ablauf 300 eingetragenen Abonnements. Unter Bezugnahme auf 2, Push-Meldungsablauf 400 kann intern auf Cloud-Speicher-Funktionseinheit 200 erfolgen und kann dadurch Latenz bei der Bereitstellung von Informationen bezüglich Ressourcenänderungen an das abonnierte vernetzten Gerät 106 reduzieren, ohne dass das vernetzte Gerät 106 häufig Informationen bezüglich einer Ressource verlangen braucht. Unter Bezugnahme auf 2, Push-Meldungsablauf 400 beginnt mit Schritt 401, in dem der Abonnementprozessor 210 eine vorbestimmte Änderung in der Ressourcendatenbank 206 oder der Benutzerdatenbank 208 erkennt. Die vorbestimmte Änderung kann die Erzeugung einer Ressource, die Änderung einer Ressource, das Löschen einer Ressource, eine Änderung der Dateien, die einem Benutzer durch Benutzerdatenbank 208 zugewiesen sind, oder eine andere geeignete Änderung sein, und kann erkannt werden, wenn der Kommunikationsprozessor 204 die Ressourcendatenbank 206 oder die Benutzerdatenbank 208 als Antwort auf einen Befehl ändert. In einigen Implementierungen kann vorbestimmten Änderung eine Änderung in den Metadaten, die einer Ressource zugewiesen sind beinhalten, welche eine Änderung, wann zuletzt auf die Ressource zugegriffen wurde, von wem zuletzt auf die Ressource zugegriffen wurde, eine Änderung der Gruppe von Benutzern, die autorisiert sind, die Ressource zu ändern, oder andere geeignete Kriterien beinhalten kann.
-
In Schritt 402 bestimmt der Abonnementprozessor 210, ob die in Schritt 401 erkannte Änderung die Kriterien eines Abonnements erfüllt, das in der Abonnementdatenbank 212 festgehalten ist. Wie im Zusammenhang mit 2 und 3 beschrieben, wenn die Änderung in Schritt 401 nicht alle Kriterien von zumindest einem Abonnement erfüllt, das in Abonnementdatenbank 212 festgehalten ist, dann endet der Push-Meldungsablauf 400, ohne dass eine Meldung übermittelt wird. Wenn jedoch die Änderung die Kriterien eines Abonnements erfüllt, enden Push-Meldungsablauf 400 mit Schritt 403. In Schritt 403 erzeugt Abonnementprozessor 210 eine Meldung an ein vernetztes Gerät 106 gemäß den Abonnementregeln: eine Meldung über die Änderung von Schritt 401 wird auf Basis des Abonnements erzeugt und wird an das vernetzte Gerät 106 gerichtet, das durch das Abonnement angegeben wird. Der Abonnementprozessor 210 kann die Meldung an Kommunikationsprozessor 204 zur Weiterleitung an die vernetzten Gerät 106 übermitteln oder kann in einigen Implementierungen die Meldung direkt an das vernetzte Gerät 106 übermitteln. In einigen Implementierungen kann der Abonnementprozessor 210 die Meldung an Authentifizierungsprozessor 214 übermitteln, sodass Authentifizierungsprozessor 214 bestätigen kann, dass die Meldung an ein autorisiertes vernetztes Gerät 106 adressiert ist, bevor die Mitteilung übermittelt wird. Die Meldung kann das Abonnement, das die Meldung ausgelöst hat, die Ressource, die der Meldung zugewiesen ist, die Art und Größe des Ereignisses, das die Meldung ausgelöst hat, oder andere geeignete Informationen identifizieren. Die Latenz zwischen eines Meldungsveranlassungs-Ereignisses und der Übermittlung einer Meldung kann basierend auf dem Übertragungskanal zwischen 40 und 150 ms betragen.
-
Die Mitteilung kann unter Verwendung von HTTP, Extensible Messaging and Presence Protocol (XMPP) oder einem anderen geeigneten Push-Lieferkanal übermittelt werden. In einigen Implementierungen können verschiedene Abonnements verschiedene Lieferkanäle verwenden. In einigen Implementierungen kann das vernetzte Gerät 106 auf eine Meldung mit einer Meldungsbestätigung antworten. In solchen Implementierungen kann, wenn innerhalb einer vorbestimmten Zeit nach der Übermittlung der Meldung keine solche Bestätigung empfangen wird, der Push-Meldungsablauf 400 versuchen, die Meldung unter vorgegebenen Bedingungen, welche den Ablauf einer vorgegebenen Zeitspanne, einen Hinweis, dass der Übertragungskanal an den abonnierenden Server wieder geöffnet ist, oder eine andere geeignete Bedingungen beinhalten kann, erneut zu übermitteln.
-
5 ist ein exemplarisches Ablaufdiagramm, das einen Autorisierungs- und Meldungsablauf 500 darstellt, in dem ein Server berechtigt ist, Mitteilungen bezüglich einer Ressource auf einer Cloud-Speicher-Funktionseinheit zu abonnieren und solch eine Meldung empfängt. Wie dargestellt, stehen ein Benutzer 502, ein vernetztes Gerät 504, wie beispielsweise das vernetzte Gerät 106 von 1, und eine Cloud-Speicher-Funktionseinheit 506, wie beispielsweise Cloud-Speicher-Funktionseinheit 200 von 2, alle in Verbindung miteinander. Gemäß dem Meldungsabonnement-Ablauf 300, übermittelt Benutzer 502 eine Autorisierung 508 an Cloud-Speicher-Funktionseinheit 506. Die Autorisierung 508 ermöglicht es dem vernetzten Gerät 504, eine oder mehrere Ressourcen auf Cloud-Speicher-Funktionseinheit 506 zu abonnieren und kann verschlüsselte Benutzeridentifikationsinformationen, Informationen zur Identifizierung einer Ressource, die das vernetzte Gerät 504 abonnieren kann, oder andere geeignete Informationen zur Autorisierung des vernetzten Geräts 504, Meldungen bezüglich einer auf Cloud-Speicher-Funktionseinheit 506 gespeicherten Ressource zu abonnieren, beinhalten. Das vernetzte Gerät 504 übermittelt anschließend die Abonnementanforderung 510 an Cloud-Speicher-Funktionseinheit 506 zu Wolke, wie beschrieben in Bezug auf 3. In einigen Implementierungen kann die Autorisierung 508 stattdessen an das vernetzte Gerät 504 übermittelt werden, was wiederum die Autorisierungsinformationen in Abonnementanforderung 510 beinhalten kann. Die Cloud-Speicher-Funktionseinheit 506 stellt sicher, dass die Abonnementanforderung 510 von Autorisierung 508 autorisiert wurde und trägt das geprüfte Abonnement ein. Wie dargestellt, übermittelt Benutzer 502 dann eine Ressourcenänderung 512, welche die Kriterien des eingetragenen Abonnements von Cloud-Speicher-Funktionseinheit 506 erfüllt. Obwohl dargestellt wird, dass Benutzer 502 die Ressourcenänderung 512 übermittelt, kann die Ressourcenänderung 512 alternativ von einem zweiten Benutzer, einer Anwendung oder einer anderen geeigneten Entität übermittelt werden. Wie im Zusammenhang mit 4, die Ressourcenänderung 512 kann eine Ressource, die dem angeforderten Abonnement zugewiesen ist, erzeugen, löschen oder auf andere Weise ändern und kann unter Verwendung eines vernetzten Geräts 106 erzeugt werden. Das Implementieren der Ressourcenänderung 512 veranlasst die Cloud-Speicher-Funktionseinheit 506, eine Push-Meldung 514 an das vernetzte Gerät 504 zu übermitteln. In einigen Implementierungen kann die Push-Meldung 514 kleiner sein als eine vorbestimmte Grenze, um Bandbreite einzusparen. In solchen Implementierungen kann das vernetzte Gerät 504 die in Push-Meldung 514 bereitgestellten Informationen verwenden, um zu bestimmen, ob weitere Informationen bezüglich der angegebenen Änderung angefragt werden sollen.
-
In einigen Implementierungen 504 kann das vernetzte Gerät den Benutzer 502 veranlassen, ein Autorisierung 508 an Cloud-Speicher-Funktionseinheit 506 zu übermitteln. In einigen Implementierungen kann die Cloud-Speicher-Funktionseinheit 506 auf eine Abonnementanforderung 510 antworten, indem sie den Benutzer 502 auffordert, eine geeignete Autorisierung 508 zu übermitteln.
-
In einigen Implementierungen kann das vernetzte Gerät 504 auf eine Meldung 514 mit einer Bestätigungsmeldung antworten. In einigen solchen Implementierungen kann die Cloud-Speicher-Funktionseinheit 506 auf eine vorbestimmte Anzahl von vergeblichen Versuchen, eine Bestätigungsmeldung innerhalb einer vorgegebenen Zeitspanne zu empfangen, reagieren, indem das dem vernetzten Gerät 504 zugewiesene Abonnement gekündigt wird.
-
6 ist ein Blockdiagramm eines Computergeräts, das verwendet werden kann, beliebige der Komponenten des Systems von 1 oder 2 zu implementieren und einen beliebigen der hierin beschriebenen Abläufe durchzuführen. Die Cloud-Speicher-Funktionseinheit 200 kann auf einem oder mehreren Computergeräten 600 mit geeigneten Schaltungsanordnungen implementiert werden, und das vernetzte Gerät 106 kann mit Cloud-Speichergerät 102 über ein oder mehrere Computergeräte 600 mit geeigneten Schaltungsanordnungen kommunizieren. In bestimmten Aspekten kann eine Vielzahl der Komponenten von Cloud-Speichersystem 100 in einem Computergerät 600 beinhaltet sein. Bei bestimmten Umsetzungen können eine Komponente und ein Speichergerät in mehreren Computern 600 implementiert werden.
-
Das Computergerät 600 umfasst mindestens eine Kommunikationsschnittstelleneinheit, einen Eingangs/Ausgangs-Controller 610, Systemspeicher und ein oder mehrere Datenspeichergeräte. Dies kann eine Netzwerkverbindung unterstützen, wie beispielsweise eine Verbindung zum Netzwerk 104, gezeigt in 1. Der Systemspeicher beinhaltet zumindest einen Direktzugriffsspeicher (RAM 602) und zumindest einen Nur-Lese-Speicher (ROM 604). RAM 602 kann beispielsweise die Dateidatenbank 206 von 2 unterstützen. All diese Elemente kommunizieren mit einer zentralen Verarbeitungseinheit (CPU 606), um den Betrieb des Computers 600 zu vereinfachen. Der Computer 600 kann auf diverse Weisen konfiguriert werden. Der Computer 600 kann z. B. ein konventioneller Standalone-Computer sein, oder als Alternative, können die Funktionen des Computers 600 über mehrere Computersysteme und Architekturen verteilt werden. In 6 kann der Computer 600 über ein Netzwerk oder ein lokales Netzwerk mit anderen Servern oder Systemen verbunden sein.
-
Das Computergerät 600 kann ein einer verteilten Architektur konfiguriert sein, worin Datenbanken und Rechner in separaten Einheiten oder an separaten Orten angeordnet sind. Manche Einheiten führen primäre Verarbeitungsfunktionen aus und beinhalten mindestens einen allgemeinen Controller oder einen Prozessor und einen Systemspeicher. Bei verteilten Architekturumsetzungen müssen alle Einheiten über die Kommunikationsschnittstelle 608 an einen Kommunikationsknotenpunkt oder -port (nicht gezeigt) angeschlossen sein, der die primäre Kommunikationsverknüpfung mit anderen Servern, Client- oder Benutzercomputern und anderen zugehörigen Geräten darstellt. Der Kommunikationsknotenpunkt oder -port kann selbst über eine minimale Verarbeitungskapazität verfügen und dient primär als Kommunikationsrouter. Verschiedene Kommunikationsprotokolle können ein Teil des Systems sein, einschließlich, aber nicht beschränkt auf: Ethernet, SAP, SASTM, ATP, BLUETOOTHTM, GSM und TCP/IP.
-
Die Zentraleinheit 606 umfasst einen Prozessor, wie beispielsweise einen oder mehrere herkömmliche Mikroprozessoren und einen oder mehrere zusätzliche Co-Prozessoren, wie beispielsweise Mathematik-Co-Prozessoren zum Outsourcen der Arbeitslast von Zentraleinheit 606. Der CPU 606 kommuniziert mit der Kommunikationsschnittstelle 608 und dem Eingangs-/Ausgangssteuergerät 610, über das der CPU 606 mit anderen Geräten, wie anderen Servern, Benutzerstationen und Geräten kommunizieren kann. Die Kommunikationsschnittstelleneinheit 608 und der Eingangs-/Ausgangs-Controller 610, können mehrere Kommunikationskanäle für simultane Kommunikation mit beispielsweise anderen Prozessoren, Servern, oder Client-Terminals beinhalten.
-
Die Zentraleinheit 606 kommuniziert ebenfalls mit dem Datenspeichergerät. Das Datenspeichergerät kann eine geeignete Kombination aus magnetischem, optischem oder Halbleiterspeicher umfassen und kann z. B. RAM 602, ROM 604, einen Flashdrive, oder ein optisches Laufwerk, wie ein CD-Laufwerk, oder eine Festplatte enthalten. Die Zentraleinheit 606 und das Datenspeichergerät können sich beispielsweise ausschließlich in einem einzigen Computer oder einem anderen Computergerät befinden, oder sie können über ein Kommunikationsmedium, wie beispielsweise einen USB-Port, ein serielles Anschlusskabel, ein Koaxialkabel, ein Ethernetkabel, eine Telefonleitung, einen Funkfrequenz-Transceiver oder über ein ähnliches drahtloses oder verdrahtetes Medium oder eine Kombination der obigen miteinander verbunden sein. So kann der CPU 606 z. B. über die Kommunikationsschnittstelle 608 mit dem Datenspeichergerät verbunden sein. Der CPU 606 kann zur Durchführung einer oder mehrerer bestimmter Verarbeitungsfunktionen konfiguriert werden.
-
Auf dem Datenspeichergerät können beispielsweise (i) ein Betriebssystem 612 für das Computergerät 600; (ii) eine oder mehrere Anwendungen 614 (z. B. Computerprogrammcode oder ein Computerprogrammprodukt), die im Einklang mit den hier beschriebenen Systemen und Verfahren und insbesondere im Einklang mit den hier im Einzelnen mit Bezug auf die Zentraleinheit 606 beschriebenen Vorgängen, angepasst sind, die Zentraleinheit 606 zu regeln; oder (iii) Datenbank(en) 616, so angepasst, Informationen zu speichern, die verwendet werden können, um vom Programm benötigte Informationen zu speichern, gespeichert werden. Die dargestellte Datenbank 616 kann ein beliebige geeignete Datenbanksystem sein und kann ein lokales oder verteiltes Datenbanksystem sein.
-
Das Betriebssystem 612 und die Anwendungen 614 können zum Beispiel in einem komprimierten, nicht-compilierten und verschlüsselten Format gespeichert werden und können Computerprogrammcode beinhalten. Die Anweisungen des Programms können von einem computerlesbaren Medium, außer dem Datenspeichergerät, in den Hauptspeicher des Prozessors eingelesen werden, wie beispielsweise von ROM 604 oder von RAM 602, oder von einem Computerdatensignal, das in einer Trägerwelle verkörpert ist, wie beispielsweise ein solches, das innerhalb der bekannten Webseiten, die unter mit dem Internet verbundenen Geräten übertragen werden, zu finden ist. Während die Durchführung von Sequenzen von Anweisungen im Programm dazu führt, dass der CPU 606 die hier beschriebenen Prozessschritte durchführt, können auch fest verdrahtete Kreise anstatt oder in Kombination mit Softwareanweisungen für die Umsetzung des Prozesses der vorliegenden Offenlegung verwendet werden. Daher sind die hier beschriebenen Systeme und Methoden nicht auf eine spezifische Kombination aus Hardware und Software beschränkt.
-
Es kann ein geeigneter Computerprogrammcode bereitgestellt werden, um eine oder mehrere Funktionen im Zusammenhang mit dem hierin beschriebenen Cloud-Speichersystem auszuführen. Das Programm kann auch Programmelemente, wie beispielsweise ein Betriebssystem 612, ein Datenbank-Verwaltungssystem und „Gerätetreiber“ beinhalten, die dem Prozessor erlauben mit Computer-Peripheriegeräten (z. B. eine Videoanzeige, eine Tastatur, eine Computermaus usw.) über den Eingangs-/Ausgangs-Controller 610 zu wechselwirken.
-
Der Begriff „computerlesbares Medium“, wie er hier verwendet wird, bezieht sich auf ein nicht-flüchtiges Medium, das Anweisungen an den Prozessor des Computergeräts 600 (oder an irgend einen anderen Prozessor eines hier beschriebenen Geräts) zur Ausführung bereitstellt oder an der Bereitstellung beteiligt ist. Dieses Medium kann viele Formen annehmen, einschließlich unter anderem nichtflüchtige und flüchtige Medien. Zu den nichtflüchtigen Medien gehören z. B. optische magnetische oder optomagnetische Disks oder integrierte Speicherschaltung, wie Flash-Speicher. Zu den flüchtigen Medien gehören dynamisches RAM (DRAM), welches gewöhnlich als Hauptspeicher dient. Allgemeine Formen der maschinenlesbaren Medien bzw. computerlesbaren Medien beinhalten z. B. Disketten, Floppy Disks, Festplatten, Magnetbänder, jegliche anderen magnetischen Datenträger, CD-ROMs, DVDs, jegliche andere optische Medien, Lochkarten, Lochstreifen, alle anderen physischen Medien mit Lochmustern, RAM-, PROM-, EPROM-Speicher, Flash-EPROM, jegliche anderen Speicherchips oder -kassetten oder jedes andere Medium, von dem ein Prozessor lesen kann.
-
Diverse Formen von computerlesbaren Medien können daran beteiligt sein, eine oder mehrere Sequenzen einer oder mehrerer Anweisungen an die Zentraleinheit 606 (oder einen anderen hierin beschriebenen Prozessor oder eine Einrichtung) zur Ausführung zu tragen. So können die Anweisungen zum Beispiel zunächst auf einer magnetischen Disk eines Ferncomputers getragen werden (ohne Abbildung). Der Ferncomputer kann diese Anweisungen in seinen dynamischen Speicher laden und die Anweisungen anschließend über eine Ethernet-Verbindung, ein Kabel oder sogar über eine Telefonleitung mit Modem senden. Ein ortsnah an einem Computergerät angeordnetes Kommunikationsgerät 600 (z. B. ein Server) kann die Daten über die entsprechende Kommunikationsleitung empfangen und die Daten für den Prozessor auf einem Systembus ablegen. Der Systembus transportiert die Daten dann an den Hauptspeicher, von dem der Prozessor die Anweisungen anschließend abruft und ausführt. Die vom Hauptspeicher empfangenen Anweisungen können optional entweder vor oder nach der Ausführung durch den Prozessor gespeichert werden. Darüber hinaus können Anweisungen über einen Kommmunikations-Port als elektrische, elektromagnetische oder optische Signale empfangen werden, welche exemplarische Formen von drahtlosen Kommunikationen oder Datenströme sind, die diverse Arten von Informationen tragen.
-
Einige Implementierungen des oben Beschriebenen können durch die Herstellung von anwendungsspezifischen integrierten Schaltungen oder durch Verbinden eines geeigneten Netzwerks von herkömmlichen Komponentenschaltungen implementiert werden, wie dem Fachmann auf dem Gebiet offensichtlich sein wird. Der Fachmann auf dem Gebiet würde verstehen, dass Informationen und Signale durch eine beliebige einer Vielzahl von unterschiedlichen Technologien und Techniken dargestellt werden können. Beispielsweise können Daten, Anweisungen, Anfragen, Informationen, Signale, Bits, Symbole und Chips, auf die in der obigen Beschreibung durchweg Bezug genommen werden kann, durch Spannungen, Ströme, elektromagnetische Wellen, magnetische Felder oder Partikel, optische Felder oder Partikel oder irgendeine Kombination davon dargestellt werden.
-
Auch wenn hierin verschiedene Ausführungsformen der vorliegenden Offenbarung gezeigt und beschrieben wurden, wird es dem Fachmann offensichtlich sein, dass diese Ausführungsformen lediglich als Beispiel dienen. Den Fachkräften werden zahlreiche Variationen, Abänderungen und Ersetzungen einfallen, ohne von der Veröffentlichung abzuweichen. Zum Beispiel können Abonnements an vernetzte Geräte oder an von den Administratoren des Cloud-Speicherdienstes verwaltete Dienste adressiert werden. Es sollte klar sein, dass diverse Alternativen zu den hier beschriebenen Ausführungen in der Praxis dieser Offenlegung angewandt werden können. Elemente einer Implementierung der hierin beschriebenen Systeme und Verfahren können unabhängig voneinander implementiert werden oder mit anderen Implementierungen kombiniert werden. Es ist beabsichtigt, dass die folgenden Ansprüche den Umfang der Veröffentlichung festlegen und dass Verfahren und Strukturen innerhalb des Umfangs dieser Ansprüche und deren Entsprechungen hiervon abgedeckt sind.