-
TECHNISCHES GEBIET
-
Die vorliegende Erfindung betrifft eine Optimierung der Nutzung von Ressourcen in einer Mehrzahl von Einheiten in einer Umgebung des Internets der Dinge.
-
HINTERGRUND
-
Smart-Geräte und andere Einheiten, die in einem Netzwerk des Internets der Dinge (IoT) verknüpft sind, werden immer häufiger zu Hause installiert. Das durch diese Einheiten gebildete IoT-Netzwerk ist im Allgemeinen ein Netzwerk, das physische elektronische Einheiten mit Software kombiniert, wodurch diesen Einheiten ermöglicht wird, untereinander ein konnektives Netzwerk für den Austausch von Daten zu bilden. Jede IoT-Einheit kann als separates Datenverarbeitungssystem ausgewiesen werden, kann aber auch in der Infrastruktur des loT-Netzwerks arbeiten. Einige loT-Einheiten können zum Beispiel auch Sensoren zum Überwachen oder Aktoren zum Ausführen von Aufgaben in der realen Welt aufweisen. Insbesondere kann der Begriff „Dinge“ in loT auf jede einer großen Vielfalt von Einheiten verweisen, von „intelligenten“ Thermostaten bis hin zu biologischer Überwachungsausrüstung. Dadurch gebildete loT-Einheiten und das IoT-Netzwerk können unter anderem eine Kombination von Hardware, Software, Datengenerierung und Leistungserbringung bieten, die Computersysteme in die reale Welt integrieren. Dies kann eine Minimierung von menschlichem Eingreifen auf Gebieten, die dies üblicherweise erfordern, sowie größere Effizienz und Genauigkeit von Systemen unter der Steuerung von einer oder mehreren Einheiten in einer loT-Umgebung ermöglichen.
-
KURZDARSTELLUNG DER ERFINDUNG
-
Hierin vorgestellte Ansätze ermöglichen eine Optimierung einer Mehrzahl von Ressourcen, die in einem Netzwerk des Internets der Dinge (loT) verbunden sind. Insbesondere wird die Nutzung einer ersten und einer zweiten Ressource von der Mehrzahl von Ressourcen verfolgt, die in dem loT-Netzwerk verbunden sind. Diese Nutzung weist eine Aufgabe und einen Zeitpunkt auf, an dem die Aufgabe für jede der beiden Ressourcen ausgeführt wird. Eine erwartete Aufgabe an einem erwarteten Zeitpunkt, die auf der verfolgten Nutzung der ersten Ressource beruht, wird identifiziert. Eine erwartete Kapazität zu im Wesentlichen demselben erwarteten Zeitpunkt wird auch für die zweite Ressource auf Grundlage der verfolgten Nutzung der zweiten Ressource identifiziert. Eine zusätzliche Kapazität wird auf der ersten Ressource durch ein Übertragen der erwarteten ersten Aufgabe auf die zweite Ressource für den erwarteten Zeitpunkt generiert. Die zusätzliche Kapazität wird für die Nutzung durch eine unabhängige Partei angegeben. Anschließend wird der zusätzlichen Kapazität von der unabhängigen Partei eine Last zugewiesen.
-
Ein Aspekt der vorliegenden Erfindung umfasst ein Verfahren zum Optimieren einer Mehrzahl von Ressourcen, die in einem Netzwerk des Internets der Dinge (loT) verbunden sind, wobei das Verfahren aufweist: ein Verfolgen der Nutzung einer ersten Ressource und einer Nutzung einer zweiten Ressource der Mehrzahl von Ressourcen, die in dem loT-Netzwerk verbunden sind, wobei die Nutzung der ersten Ressource eine erste Aufgabe und einen Zeitpunkt aufweist, an dem die erste Aufgabe ausgeführt wird, und die Nutzung der zweiten Ressource eine zweite Aufgabe und einen Zeitpunkt aufweist, an dem die zweite Aufgabe ausgeführt wird; ein Identifizieren einer erwarteten ersten Aufgabe an einem erwarteten Zeitpunkt auf Grundlage der verfolgten Nutzung der ersten Ressource, und ein Identifizieren einer erwarteten Kapazität zu im Wesentlichen demselben erwarteten Zeitpunkt auf der zweiten Ressource auf Grundlage der verfolgten Nutzung der zweiten Ressource; ein Generieren von zusätzlicher Kapazität auf der ersten Ressource durch ein Übertragen der erwarteten ersten Aufgabe auf die zweite Ressource für den erwarteten Zeitpunkt; ein Angeben der zusätzlichen Kapazität der ersten Ressource an dem erwartetem Zeitpunkt für die Nutzung durch eine unabhängige Partei; und ein Zuweisen einer Last zu der zusätzlichen Kapazität der ersten Ressource von der unabhängigen Partei.
-
Ein weiterer Aspekt der vorliegenden Erfindung umfasst ein Computersystem zum Optimieren einer Mehrzahl von Ressourcen, die in einem Netzwerk des Internets der Dinge (loT) verbunden sind, wobei das Computersystem aufweist: ein Arbeitsspeichermedium, das Programmanweisungen aufweist; einen Bus, der an das Arbeitsspeichermedium gekoppelt ist; und einen Prozessor zum Ausführen der Programmanweisungen, der über den Bus an eine Engine zur loT-Ressourcenoptimierung gekoppelt ist, die beim Ausführen der Programmanweisungen das System veranlasst zu: einem Verfolgen der Nutzung einer ersten Ressource und einer Nutzung einer zweiten Ressource der Mehrzahl von Ressourcen, die in dem loT-Netzwerk verbunden sind, wobei die Nutzung der ersten Ressource eine erste Aufgabe und einen Zeitpunkt aufweist, an dem die erste Aufgabe ausgeführt wird, und die Nutzung der zweiten Ressource eine zweite Aufgabe und einen Zeitpunkt aufweist, an dem die zweite Aufgabe ausgeführt wird; einem Identifizieren einer erwarteten ersten Aufgabe an einem erwarteten Zeitpunkt auf Grundlage der verfolgten Nutzung der ersten Ressource, und einem Identifizieren einer erwarteten Kapazität zu im Wesentlichen demselben erwarteten Zeitpunkt auf der zweiten Ressource auf Grundlage der verfolgten Nutzung der zweiten Ressource; einem Generieren von zusätzlicher Kapazität auf der ersten Ressource durch ein Übertragen der erwarteten ersten Aufgabe auf die zweite Ressource für den erwarteten Zeitpunkt; einem Angeben der zusätzlichen Kapazität der ersten Ressource an dem erwarteten Zeitpunkt für die Nutzung durch eine unabhängige Partei: und einem Zuweisen einer Last zu der zusätzlichen Kapazität der ersten Ressource von der unabhängigen Partei.
-
Ein noch weiterer Aspekt der vorliegenden Erfindung umfasst ein Computerprogrammprodukt zum Optimieren einer Mehrzahl von Ressourcen, die in einem Netzwerk des Internets der Dinge (loT) verbunden sind, wobei das Computerprogrammprodukt eine durch einen Computer lesbare Hardware-Speichereinheit und Programmanweisungen aufweist, die auf der durch einen Computer lesbaren Hardware-Speichereinheit gespeichert sind zu: einem Verfolgen der Nutzung einer ersten Ressource und einer Nutzung einer zweiten Ressource der Mehrzahl von Ressourcen, die in dem loT-Netzwerk verbunden sind, wobei die Nutzung der ersten Ressource eine erste Aufgabe und einen Zeitpunkt aufweist, an dem die erste Aufgabe ausgeführt wird, und die Nutzung der zweiten Ressource eine zweite Aufgabe und einen Zeitpunkt aufweist, an dem die zweite Aufgabe ausgeführt wird; einem Identifizieren einer erwarteten ersten Aufgabe an einem erwarteten Zeitpunkt auf Grundlage der verfolgten Nutzung der ersten Ressource, und einem Identifizieren einer erwarteten Kapazität zu im Wesentlichen demselben erwarteten Zeitpunkt auf der zweiten Ressource auf Grundlage der verfolgten Nutzung der zweiten Ressource; einem Generieren von zusätzlicher Kapazität auf der ersten Ressource durch ein Übertragen der erwarteten ersten Aufgabe auf die zweite Ressource für den erwarteten Zeitpunkt; einem Angeben der zusätzlichen Kapazität der ersten Ressource an dem erwartetem Zeitpunkt für die Nutzung durch eine unabhängige Partei; und einem Zuweisen einer Last zu der zusätzlichen Kapazität der ersten Ressource von der unabhängigen Partei.
-
Weiterhin könnte jede der Komponenten der vorliegenden Erfindung durch einen Diensteanbieter eingesetzt, verwaltet, bedient usw. werden, der eine Umsetzung einer passiven Überwachung in einem Computersystem anbietet.
-
Ausführungsformen der vorliegenden Erfindung stellen auch zugehörige Systeme, Verfahren und/oder Programmprodukte bereit.
-
Figurenliste
-
Diese und weitere Merkmale dieser Erfindung sind aus der folgenden ausführlichen Beschreibung der verschiedenen Aspekte der Erfindung in Verbindung mit den begleitenden Zeichnungen besser verständlich, in denen:
- 1 eine Architektur zeigt, in der die Erfindung gemäß veranschaulichenden Ausführungsformen umgesetzt werden kann.
- 2 eine Cloud-Computing-Umgebung gemäß veranschaulichenden Ausführungsformen der vorliegenden Erfindung darstellt.
- 3 Abstraktionsmodellschichten gemäß veranschaulichenden Ausführungsformen der vorliegenden Erfindung darstellt.
- 4 eine Umgebung des Internets der Dinge (loT) und eine Systemabbildung zeigt, die die hierin erörterte Funktionalität gemäß veranschaulichenden Ausführungsformen beschreibt.
- 5 eine beispielhafte Umsetzung der vorliegenden Erfindung gemäß veranschaulichten Ausführungsformen zeigt.
- 6 einen Prozessablaufplan zum Optimieren einer Mehrzahl von Ressourcen zeigt, die in einem IoT-Netzwerk gemäß veranschaulichten Ausführungsformen verbunden sind.
-
Die Zeichnungen sind nicht notwendigerweise maßstabsgetreu. Die Zeichnungen dienen nur zur Veranschaulichung und sind nicht dazu bestimmt, spezifische Parameter der Erfindung darzustellen. Die Zeichnungen sind nur dazu bestimmt, typische Ausführungsformen der Erfindung darzustellen und sollten daher nicht als Einschränkung des Schutzumfangs betrachtet werden. In den Zeichnungen stellen gleiche Nummerierungen gleiche Elemente dar.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Im Folgenden werden veranschaulichende Ausführungsformen unter Bezugnahme auf die begleitenden Zeichnungen ausführlicher beschrieben, in denen veranschaulichende Ausführungsformen gezeigt werden. Es sollte klar sein, dass diese Offenbarung in vielen verschiedenen Formen verkörpert werden kann und nicht als Einschränkung auf die hierin erläuterten veranschaulichenden Ausführungsformen aufgefasst werden soll.
-
Ferner dient die hierin verwendete Terminologie nur zum Zweck der Beschreibung von bestimmten Ausführungsformen und soll diese Offenbarung keinesfalls einschränken. Die hierin verwendeten Singularformen „ein“, „eine“ und „der/die/das“ sollen auch die Pluralformen mit einschließen, es sei denn, der Kontext gibt eindeutig anderes vor. Ferner gibt die Verwendung der Begriffe „ein“, „eine“ usw. keine Begrenzung einer Menge an, sondern das Vorhandensein von mindestens einem der genannten Elemente. Ferner können ähnlichen Elementen in verschiedenen Figuren ähnliche Elementnummern zugewiesen sein. Es versteht sich des Weiteren, dass die Begriffe „weist auf“ und/oder „aufweisend“ oder „umfasst“ und/oder „umfassend“ bei Verwendung in dieser Patentschrift das Vorhandensein ausgewiesener Merkmale, Bereiche, Ganzzahlen, Schritte, Operationen, Elemente und/oder Komponenten angeben, das Vorhandensein oder die Hinzufügung von einem oder mehreren anderen Merkmalen, Bereichen, Ganzzahlen, Schritten, Operationen, Elementen, Komponenten und/oder Gruppen davon aber nicht ausschließen.
-
Sofern nicht anders angegeben, sollte klar sein, dass Begriffe wie „Verarbeiten“, „Erkennen“, „Bestimmen“, „Auswerten“, „Empfangen“ oder dergleichen auf die Aktion und/oder Prozesse eines Computers oder Datenverarbeitungssystems oder einer ähnlichen elektronischen Rechenzentrumseinheit verweisen, die Daten bearbeitet und/oder als physische Mengen (z.B. elektronisch) dargestellte Daten in den Registern und/oder Arbeitsspeichern des Datenverarbeitungssystems in andere Daten umwandelt, die desgleichen als physische Mengen in den Arbeitsspeichern, Registern oder anderen derartigen Datenspeicher-, Übertragungs- oder Anzeigeeinheiten dargestellt werden. Die Ausführungsformen sind in diesem Kontext nicht eingeschränkt.
-
Wie oben angegeben, ermöglichen hierin beschriebene Ausführungsformen eine Optimierung einer Mehrzahl von Ressourcen, die in einem Netzwerk des Internets der Dinge (loT) verbunden sind. Insbesondere wird die Nutzung einer ersten und einer zweiten Ressource von der Mehrzahl von Ressourcen verfolgt, die in dem loT-Netzwerk verbunden sind. Diese Nutzung weist eine Aufgabe und einen Zeitpunkt auf, an dem die Aufgabe für jede der beiden Ressourcen ausgeführt wird. Eine erwartete Aufgabe an einem erwarteten Zeitpunkt, die auf der verfolgten Nutzung der ersten Ressource beruht, wird identifiziert. Eine erwartete Kapazität zu im Wesentlichen demselben erwarteten Zeitpunkt wird auch für die zweite Ressource auf Grundlage der verfolgten Nutzung der zweiten Ressource identifiziert. Eine zusätzliche Kapazität wird auf der ersten Ressource durch ein Übertragen der erwarteten ersten Aufgabe auf die zweite Ressource für den erwarteten Zeitpunkt generiert. Die zusätzliche Kapazität wird für die Nutzung durch eine unabhängige Partei angegeben. Anschließend wird der zusätzlichen Kapazität von der unabhängigen Partei eine Last zugewiesen.
-
Es sollte von vornherein klar sein, obwohl diese Offenbarung eine ausführliche Beschreibung von Cloud Computing enthält, dass eine Umsetzung der hierin angeführten Lehren nicht auf eine Cloud-Computing-Umgebung beschränkt ist. Stattdessen können Ausführungsformen der vorliegenden Erfindung gemeinsam mit jedem beliebigen Typ von jetzt bekannter oder später entwickelter Datenverarbeitungsumgebung umgesetzt werden.
-
Cloud Computing ist ein Servicebereitstellungsmodell zum Ermöglichen eines problemlosen bedarfsgesteuerten Netzwerkzugriffs auf einen gemeinsam genutzten Pool von konfigurierbaren Datenverarbeitungsressourcen (z.B. Netzwerke, Netzwerkbandbreite, Server, Verarbeitung, Arbeitsspeicher, Speicher, Anwendungen, virtuelle Maschinen und Dienste), die mit minimalem Verwaltungsaufwand bzw. minimaler Interaktion mit einem Anbieter des Service schnell bereitgestellt und freigegeben werden können. Dieses Cloud-Modell kann mindestens fünf Eigenschaften, mindestens drei Dienstmodelle und mindestens vier Implementierungsmodelle enthalten.
-
Die Eigenschaften sind wie folgt:
- On-Demand Self-Service: Ein Cloud-Nutzer kann einseitig automatisch nach Bedarf für Datenverarbeitungsfunktionen wie Serverzeit und Netzwerkspeicher sorgen, ohne dass eine menschliche Interaktion mit dem Anbieter der Dienste erforderlich ist.
- Broad Network Access: Es sind Funktionen über ein Netzwerk verfügbar, auf die durch Standardmechanismen zugegriffen wird, welche die Verwendung durch heterogene Thin- oder Thick-Client-Plattformen (z.B. Mobiltelefone, Laptops und PDAs) unterstützen.
- Resource-Pooling: Die Datenverarbeitungsressourcen des Anbieters werden zusammengeschlossen, um mehreren Nutzern unter Verwendung eines Multi-Tenant-Modells zu dienen, wobei verschiedene physische und virtuelle Ressourcen dynamisch nach Bedarf zugewiesen und neu zugewiesen werden. Es gibt eine gefühlte Standortunabhängigkeit, da der Nutzer allgemein keine Kontrolle bzw. Kenntnis über den genauen Standort der bereitgestellten Ressourcen hat, aber in der Lage sein kann, einen Standort auf einer höheren Abstraktionsebene festzulegen (z.B. Land, Staat oder Rechenzentrum).
- Rapid Elasticity: Funktionen können für eine schnelle horizontale Skalierung (scale out) schnell und elastisch bereitgestellt werden, in einigen Fällen auch automatisch, und für ein schnelles Scale-in schnell freigegeben werden. Für den Nutzer erscheinen die für das Bereitstellen verfügbaren Funktionen häufig unbegrenzt, und sie können jederzeit in jeder beliebigen Menge gekauft werden.
- Measured Service: Cloud-Systeme steuern und optimieren die Verwendung von Ressourcen automatisch, indem sie eine Messfunktion auf einer gewissen Abstraktionsebene nutzen, die für die Art von Dienst geeignet ist (z.B. Speicher, Verarbeitung, Bandbreite sowie aktive Benutzerkonten). Die Ressourcennutzung kann überwacht, gesteuert und gemeldet werden, wodurch sowohl für den Anbieter als auch für den Nutzer des verwendeten Dienstes Transparenz geschaffen wird.
-
Es gibt folgende Dienstmodelle:
- Software as a Service (SaaS): Die dem Nutzer bereitgestellte Funktion besteht darin, die in einer Cloud-Infrastruktur laufenden Anwendungen des Anbieters zu verwenden. Die Anwendungen sind über eine Thin-Client-Schnittstelle wie ein Web-Browser (z.B. eine auf dem Web beruhende eMail) von verschiedenen Client-Einheiten her zugänglich. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter das Netzwerk, Server, Betriebssysteme, Speicher bzw. sogar einzelne Anwendungsfunktionen, mit der möglichen Ausnahme von eingeschränkten benutzerspezifischen Anwendungskonfigurationseinstellungen.
-
Platform as a Service (PaaS): Die dem Nutzer bereitgestellte Funktion besteht darin, durch einen Nutzer erstellte bzw. erhaltene Anwendungen, die unter Verwendung von durch den Anbieter unterstützten Programmiersprachen und Tools erstellt wurden, in der Cloud-Infrastruktur einzusetzen. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter Netzwerke, Server, Betriebssysteme bzw. Speicher, hat aber die Kontrolle über die eingesetzten Anwendungen und möglicherweise über Konfigurationen des Application Hosting Environment.
-
Infrastructure as a Service (laaS): Die dem Nutzer bereitgestellte Funktion besteht darin, Verarbeitung, Speicher, Netzwerke und andere grundlegende Datenverarbeitungsressourcen bereitzustellen, wobei der Nutzer in der Lage ist, beliebige Software einzusetzen und auszuführen, zu der Betriebssysteme und Anwendungen gehören können. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, hat aber die Kontrolle über Betriebssysteme, Speicher, eingesetzte Anwendungen und möglicherweise eingeschränkte Kontrolle über ausgewählte Netzwerkkomponenten (z.B. Host-Firewalls).
-
Es gibt folgende Nutzungsmodelle:
- Private Cloud: Die Cloud-Infrastruktur wird ausschließlich für eine Organisation betrieben. Sie kann von der Organisation oder einer Drittpartei verwaltet werden und kann innerhalb oder außerhalb von Geschäftsräumen vorhanden sein.
-
Community Cloud: Die Cloud-Infrastruktur wird von mehreren Organisationen gemeinsam genutzt und unterstützt eine bestimmte Community, die gemeinsame Problemstellungen hat (z.B. Berücksichtigung von Zielsetzung, Sicherheitsanforderungen, Richtlinien und Konformität). Sie kann von den Organisationen oder einer Drittpartei verwaltet werden und kann innerhalb oder außerhalb von Geschäftsräumen vorhanden sein.
-
Public Cloud: Die Cloud-Infrastruktur wird der allgemeinen Öffentlichkeit oder einer großen Industriegruppe zur Verfügung gestellt und gehört einer Organisation, die Cloud-Dienste verkauft.
-
Hybrid Cloud: Die Cloud-Infrastruktur ist eine Zusammensetzung aus zwei oder mehreren Clouds (privat, Benutzergemeinschaft oder öffentlich), die zwar einzelne Einheiten bleiben, aber durch eine standardisierte oder proprietäre Technologie miteinander verbunden sind, die eine Daten- und Anwendungsportierbarkeit ermöglicht (z.B. Cloud-Zielgruppenverteilung für den Lastausgleich zwischen Clouds).
-
Eine Cloud-Computing-Umgebung ist dienstorientiert, wobei der Schwerpunkt auf Statusunabhängigkeit, geringer Kopplung, Modularität und semantischer Interoperabilität liegt. Im Mittelpunkt von Cloud Computing steht eine Infrastruktur, die ein Netzwerk von miteinander verbundenen Knoten aufweist.
-
Unter Bezugnahme auf 1 wird eine schematische Darstellung eines Beispiels für einen Cloud-Computing-Knoten zum Optimieren einer Mehrzahl von Ressourcen gezeigt, die in einem loT-Netzwerk verbunden sind. Ein Cloud-Computing-Knoten 10 ist nur ein Beispiel für einen geeigneten Cloud-Computing-Knoten und soll keinerlei Einschränkung in Bezug auf den Schutzumfang der Nutzung oder Funktionalität von Ausführungsformen der hierin beschriebenen Erfindung andeuten. Ungeachtet dessen lässt sich der Cloud-Computing-Knoten 10 umsetzen und/oder kann jede der hierin erläuterten Funktionalitäten ausführen.
-
Im Cloud-Computing-Knoten 10 ist ein Computersystem/Server 12 vorhanden, das bzw. der mit zahlreichen anderen Universal- oder Sonder-Datenverarbeitungssystemumgebungen betriebsbereit ist. Zu Beispielen für bekannte Datenverarbeitungssysteme, Umgebungen und/oder Konfigurationen, die für eine Verwendung mit dem Computersystem/Server 12 geeignet sein können, zählen PC-Systeme, Servercomputersysteme, Thin Clients, Thick Clients, Handheld- oder Laptop-Einheiten, Multiprozessorsysteme, Systeme auf der Grundlage von Mikroprozessoren, Set-Top-Boxen, programmierbare Unterhaltungselektronik, Netzwerk-PCs, Minicomputersysteme, Mainframe-Computersysteme und verteilte Cloud-Computing-Umgebungen, die beliebige der oben genannten Systeme oder Einheiten und dergleichen aufweisen, sie sind aber nicht darauf beschränkt.
-
Das Computersystem/der Server 12 kann in dem allgemeinen Kontext von Anweisungen beschrieben werden, die durch ein Computersystem ausführbar sind, wie beispielsweise Programmmodule, die von einem Computersystem ausgeführt werden. Im Allgemeinen können Programmmodule Routinen, Programme, Objekte, Komponenten, Logik, Datenstrukturen usw. enthalten, die bestimmte Aufgaben ausführen oder bestimmte abstrakte Datentypen umsetzen. Das Computersystem/der Server 12 kann in verteilten Cloud-Computing-Umgebungen betrieben werden, wobei Aufgaben von entfernt angeordneten Verarbeitungseinheiten ausgeführt werden, die über ein Datenübertragungsnetzwerk verbunden sind. In einer verteilten Cloud-Computing-Umgebung können Programmmodule sich sowohl in lokalen als auch entfernt angeordneten Computersystem-Speichermedien befinden, die Arbeitsspeicher-Speichereinheiten enthalten.
-
Ferner wird unter Bezugnahme auf 1 das Computersystem/der Server 12 im Cloud-Computing-Knoten 10 in der Form einer Universal-Datenverarbeitungseinheit gezeigt. Die Komponenten des Computersystems/Servers 12 können einen oder mehrere Prozessoren oder Verarbeitungseinheiten 16, einen Systemarbeitsspeicher 28 und einen Bus 18 enthalten, der verschiedene Systemkomponenten einschließlich des Systemarbeitsspeichers 28 mit der Verarbeitungseinheit 16 verbindet, sie sind aber nicht darauf beschränkt.
-
Der Bus 18 stellt einen oder mehrere von beliebigen mehreren Typen von Busstrukturen dar, einschließlich eines Arbeitsspeicherbusses oder Arbeitsspeichercontrollers, eines Peripheriebusses, eines Accelerated Graphics Port (beschleunigter Grafikanschluss) und eines Prozessors oder lokalen Busses unter Verwendung von einer aus einer Vielfalt von Busarchitekturen. Als Beispiel und nicht einschränkend enthalten derartige Architekturen einen Industry Standard Architecture- (ISA) Bus, Micro Channel Architecture- (MCA) Bus, Enhanced ISA- (EISA) Bus, einen lokalen Video Electronics Standards Association- (VESA) Bus und Peripheral Component Interconnect- (PCI) Bus.
-
Die Verarbeitungseinheit 16 verweist im Allgemeinen auf jede Vorrichtung, die logische Operationen, Rechenaufgaben, Steuerfunktionen usw. ausführt. Ein Prozessor kann ein oder mehrere Subsysteme, Komponenten und/oder andere Prozessoren umfassen. Ein Prozessor umfasst typischerweise verschiedene Logikkomponenten, die unter Verwendung eines Taktsignals arbeiten, um Daten zu verriegeln, logische Zustände zu erweitern, Berechnungen und logische Operationen zu synchronisieren und/oder andere Zeitvorgabe-Funktionen bereitzustellen. Während der Operation sammelt und leitet die Verarbeitungseinheit 16 Signale weiter, die Eingaben und Ausgaben zwischen externen Einheiten 14 und Eingabeeinheiten (nicht gezeigt) darstellen. Die Signale können über ein LAN und/oder ein WAN (z.B. T1, T3, 56 kB, X.25), Breitbandverbindungen (ISDN, Frame Relay, ATM), drahtlose Verbindungen (802.11, Bluetooth usw.) übertragen werden usw. In einigen Ausführungsformen können die Signale verschlüsselt werden, zum Beispiel unter Verwendung einer vertrauenswürdigen Verschlüsselung von Schlüsselpaaren. Verschiedene Systeme können Informationen unter Verwendung von verschiedenen Datenübertragungspfaden übertragen, wie beispielsweise Ethernet oder drahtlose Netzwerke, direkte serielle oder parallele Verbindungen, USB, Firewire®, Bluetooth® oder andere proprietäre Schnittstellen. (Firewire ist eine eingetragene Marke von Apple Computer, Inc. Bluetooth ist eine eingetragene Marke von Bluetooth Special Interest Group (SIG)).
-
Im Allgemeinen führt die Verarbeitungseinheit 16 Computerprogramcode aus, wie zum Beispiel Programmcode zum Optimieren einer Mehrzahl von in einem loT-Netzwerk verbundenen Ressourcen, der in einem Arbeitsspeicher 28, einem Speichersystem 34 und/oder einem Programm/Dienstprogramm 40 gespeichert ist. Beim Ausführen von Computerprogrammcode kann die Verarbeitungseinheit 16 Daten aus dem Arbeitsspeicher 28, dem Speichersystem 34 und dem Programm/Dienstprogramm 40 auslesen und/oder in diese schreiben.
-
Das Computersystem/der Server 12 enthält typischerweise eine Vielfalt von durch ein Computersystem lesbaren Medien. Derartige Medien können alle verfügbaren Medien sein, auf die von dem Computersystem/Server 12 zugegriffen werden kann, und sie enthalten sowohl flüchtige als auch nicht flüchtige Medien, austauschbare und nicht austauschbare Medien.
-
Der Systemarbeitsspeicher 28 kann durch das Computersystem lesbare Medien in der Form von flüchtigem Arbeitsspeicher enthalten, wie beispielsweise einen Direktzugriffspeicher (RAM) 30 und/oder einen Cache 32. Das Computersystem/der Server 12 kann ferner andere austauschbare/nicht austauschbare, flüchtige/nicht flüchtige Computersystem-Speichermedien enthalten (z.B. VCRs, DVRs, RAID-Arrays, USB-Festplatten, optische Plattenaufzeichnungsgeräte, Flash-Speichereinheiten und Speicherelemente zum Speichern und/oder Verarbeiten von Daten). Nur als Beispiel kann das Speichersystem 34 zum Lesen von und Schreiben auf nicht austauschbaren, nicht flüchtigen Magnetdatenträger bereitgestellt werden (nicht gezeigt und typischerweise als „Festplatte“ bezeichnet). Obwohl nicht gezeigt, kann ein Magnetplattenlaufwerk zum Auslesen und Beschreiben einer austauschbaren, nicht flüchtigen Magnetplatte (z.B. eine „Diskette“) und/oder ein optisches Plattenlaufwerk zum Auslesen oder Beschreiben einer austauschbaren, nicht flüchtigen optischen Platte wie einem CD-ROM, DVD-ROM oder anderer optischer Datenträger bereitgestellt werden. In solchen Fällen können alle über eine oder mehrere Datenträgerschnittstellen mit dem Bus 18 verbunden werden. Wie ferner im Folgenden dargestellt und beschrieben wird, kann der Arbeitsspeicher 28 mindestens ein Programmprodukt mit einem Satz (z.B. mindestens einem) von Programmmodulen enthalten, die konfiguriert sind, um die Funktionen von Ausführungsformen der Erfindung auszuführen.
-
Der auf einem von einem Computer lesbaren Medium verkörperte Programmcode kann unter Verwendung jedes geeigneten Mediums übertragen werden, einschließlich drahtlos, drahtgebunden, Lichtwellenleiterkabel, Hochfrequenz (HF) usw. oder jede geeignete Kombination des Vorgenannten, er ist aber nicht darauf beschränkt.
-
Das Programm/Dienstprogramm 40 mit einem Satz (mindestens einem) von Programmmodulen 42 kann zum Beispiel im Arbeitsspeicher 28 gespeichert werden, ist aber nicht darauf beschränkt. Der Arbeitsspeicher 28 kann auch ein Betriebssystem, ein oder mehrere Anwendungsprogramme, andere Programmmodule und Programmdaten aufweisen. Das Betriebssystem, ein oder mehrere Anwendungsprogramme, weitere Programmmodule und Programmdaten oder eine Kombination davon können eine Umsetzung einer Netzwerkumgebung enthalten. Die Programmmodule 42 führen im Allgemeinen die Funktionen und/oder Methodiken von Ausführungsformen der Erfindung aus, wie hierin beschrieben wird.
-
Das Computersystem/der Server 12 kann auch mit einer oder mehreren externen Einheiten 14 Daten austauschen, wie zum Beispiel einer Tastatur, einer Zeigeeinheit, einer Anzeige 24 usw.; einer oder mehreren Einheiten, die es einem Nutzer ermöglichen, mit dem Computersystem/Server 12 zu interagieren; und/oder allen Einheiten (z.B. Netzwerkkarte, Modem usw.), die es dem Computersystem/Server 12 ermöglichen, mit einer oder mehreren anderen Datenverarbeitungseinheiten Daten auszutauschen. Ein derartiger Datenaustausch kann über E/A-Schnittstellen 22 erfolgen. Weiterhin kann das Computersystem/der Server 12 mit einem oder mehreren Netzwerken, wie beispielsweise einem lokalen Netzwerk (LAN), einem allgemeinen Weitverkehrsnetzwerk (WAN) und/oder einem öffentlichen Netzwerk (z.B. dem Internet), über einen Netzwerkadapter 20 Daten austauschen. Wie dargestellt, tauscht der Netzwerkadapter 20 mit den anderen Komponenten des Computersystems/Servers 12 über den Bus 18 Daten aus. Es sollte klar sein, obwohl nicht gezeigt, dass andere Hardware- und/oder Software-Komponenten in Verbindung mit dem Computersystem/Server 12 verwendet werden könnten. Zu Beispielen zählen Mikrocode, Einheitentreiber, redundante Verarbeitungseinheiten, externe Plattenlaufwerk-Arrays, RAID-Systeme, Bandlaufwerke und Speichersysteme zur Datenarchivierung usw., sie sind aber nicht darauf beschränkt.
-
Unter folgender Bezugnahme auf 2 wird eine veranschaulichende Cloud-Computing-Umgebung 50 dargestellt. Wie gezeigt, weist die Cloud-Computing-Umgebung 50 einen oder mehrere Cloud-Computing-Knoten 10 auf, mit denen lokale Datenverarbeitungseinheiten, die von Nutzern der Cloud verwendet werden, wie beispielsweise Personal Digital Assistant (PDA) oder Mobiltelefon 54A, Desktop-Computer 54B, Laptop-Computer 54C und/oder Fahrzeug-Computersystem 54N, Daten austauschen können. Die Knoten 10 können untereinander Daten austauschen. Sie können physisch oder virtuell in einem oder mehreren Netzwerken gruppiert sein (nicht gezeigt), wie beispielsweise Private, Community, Public oder Hybrid Clouds, wie hierin oben beschrieben, oder in einer Kombination davon. Damit hat die Cloud-Computing-Umgebung 50 die Möglichkeit, eine Infrastruktur, Plattformen und/oder Software als Dienste anzubieten, für die ein Cloud-Nutzer keinerlei Ressourcen auf einer lokalen Datenverarbeitungseinheit vorhalten muss. Es sollte klar sein, dass die in 2 gezeigten Typen von Datenverarbeitungseinheiten 54A bis N nur zur Veranschaulichung dienen sollen, und dass die Datenverarbeitungsknoten 10 und die Cloud-Computing-Umgebung 50 mit jedem Typ einer computerisierten Einheit über jeden Typ von Netzwerk und/oder eine über ein Netzwerk adressierbare Verbindung (z.B. unter Verwendung eines Web-Browsers) Daten austauschen können.
-
Unter folgender Bezugnahme auf 3 wird eine Gruppe von funktionalen Abstraktionsschichten gezeigt, die durch die Cloud-Computing-Umgebung 50 (2) bereitgestellt werden. Dabei sollte von Anfang an klar sein, dass die in 3 gezeigten Komponenten, Schichten und Funktionen lediglich zur Veranschaulichung dienen sollen und Ausführungsformen der Erfindung nicht darauf beschränkt sind. Wie dargestellt, werden die folgenden Schichten und entsprechenden Funktionen bereitgestellt:
-
Eine Hardware- und Software-Schicht 60 enthält Hardware- und Software-Komponenten. Zu Beispielen von Hardware-Komponenten zählen Mainframes. In einem Beispiel zSeries®-Systeme von IBM® und Server auf Grundlage von einer RISC- (Reduced Instruction Set Computer) Architektur. In einem Beispiel pSeries®-Systeme von IBM, System-x®-Server von IBM, BladeCenter®-Systeme von IBM, Speichereinheiten, Netzwerke und Vernetzungskomponenten. Zu Beispielen für Software-Komponenten gehört Netzwerk-Anwendungsserver-Software. In einem Beispiel Anwendungsserver-Software für WebSphere® von IBM und Datenbank-Software. In einem Beispiel DB2®-Datenbank-Software von IBM. (IBM, zSeries, pSeries, System x, BladeCenter, WebSphere und DB2 sind eingetragene Marken der International Business Machines Corporation, die weltweit unter vielen Gerichtsbarkeiten registriert sind).
-
Eine Virtualisierungsschicht 62 stellt eine Abstraktionsschicht bereit, von der aus die folgenden beispielhaften virtuellen Entitäten bereitgestellt werden können: virtuelle Server; virtueller Speicher; virtuelle Netzwerke, einschließlich virtuelle private Netzwerke; virtuelle Anwendungen und Betriebssysteme; und virtuelle Clients.
-
In einem Beispiel kann die Verwaltungsschicht 64 die im Folgenden beschriebenen Funktionen bereitstellen. Die Ressourcenbereitstellung sorgt für eine dynamische Beschaffung von Datenverarbeitungsressourcen und weiteren Ressourcen, die zum Ausführen von Aufgaben innerhalb der Cloud-Computing-Umgebung eingesetzt werden. Messung und Preisbestimmung ermöglichen beim Einsatz von Ressourcen innerhalb der Cloud-Computing-Umgebung eine Kostenverfolgung und eine Abrechnung oder Rechnungsstellung für die Inanspruchnahme dieser Ressourcen. In einem Beispiel können diese Ressourcen Lizenzen für Anwendungssoftware enthalten. Eine Sicherheitsfunktion stellt eine Identitätsprüfung für Cloud-Nutzer und -Aufgaben sowie einen Schutz für Daten und andere Ressourcen bereit. Ein Benutzerportal stellt den Zugang zur Cloud-Computing-Umgebung für Nutzer und Systemadministratoren bereit. Die Service-Level- (Dienstgüte) Verwaltung sorgt für die Zuordnung und Verwaltung von Cloud-Computing-Ressourcen, sodass erforderliche Service-Levels eingehalten werden. Planung und Vertragserfüllung des Service Level Agreement (SLA) (Dienstgütevereinbarung) stellen eine Vorab-Vereinbarung für und Beschaffung von Cloud-Computing-Ressourcen bereit, für die gemäß eines SLA eine zukünftige Anforderung erwartet wird.
-
Eine Arbeitslastschicht 66 stellt Beispiele für eine Funktionalität bereit, für welche die Cloud-Computing-Umgebung genutzt werden kann. Zu Beispielen von Arbeitslasten und Funktionen, die von dieser Schicht aus bereitgestellt werden können, zählen: Zuordnung und Navigation; Software-Entwicklung und Lebenszyklusverwaltung; Bereitstellung von virtuellen Schulungen; Datenanalyseverarbeitung; Transaktionsverarbeitung; und loT-Ressourcenoptimierung. Wie oben erwähnt, dienen alle vorgenannten Beispiele, die unter Bezugnahme auf 3 beschrieben wurden, nur zur Veranschaulichung, und die Erfindung ist nicht auf diese Beispiele beschränkt.
-
Es sollte klar sein, dass alle Funktionen der vorliegenden Erfindung wie hierin beschrieben typischerweise durch die Funktionalität zur loT-Ressourcenoptimierung (von Arbeitslast 66) ausgeführt werden können, die konkret als Module des Programmcodes 42 des Programms/Dienstprogramms 40 (1) verkörpert werden können. Dies ist aber nicht notwendigerweise der Fall. Die hierin zitierte Funktionalität könnte stattdessen durch eine der in 3 gezeigten Schichten 60 bis 66 ausgeführt/umgesetzt und/oder aktiviert werden.
-
Obwohl diese Offenbarung eine ausführliche Beschreibung von Cloud Computing enthält, sollte nochmals betont werden, dass die Umsetzung der hierin angeführten Lehren nicht auf eine Cloud-Computing-Umgebung beschränkt ist. Vielmehr sollen einige Ausführungsformen der vorliegenden Erfindung gemeinsam mit jedem beliebigen Typ von jetzt bekannter oder später entwickelter vernetzter Datenverarbeitungsumgebung umgesetzt werden.
-
Unter folgender Bezugnahme auf 4 wird eine veranschaulichende Umgebung 70 des Internets der Dinge (loT) dargestellt. Die loT-Umgebung 70 enthält ein Netzwerk 72 des Internets der Dinge (loT), das durch loT-Einheiten74A bis N gebildet wird. Die loT-Einheiten 74A bis N können ein oder mehrere Umgebungseinheiten, elektronische Aufzeichnungseinheiten, elektronische Aktoren, personengebundene Elektronik, Verbrauchsgüter, Wearables, Apparate, Messeinrichtungen und dergleichen umfassen (wie zum Beispiel die Einheiten 74A bis N, die einem Haus 76 zugehörig sind). Die Einheiten 74A bis N können zum Beispiel personengebundene Elektronik 74A (z.B. eine Wearable-Einheit usw.), eine Systemsteuerungseinheit 74B (z.B. intelligenter Thermostat, intelligente Steckdose, intelligente Sperre, intelligente Glühbirne usw.), ein intelligentes Haushaltsgerät (z.B. ein intelligenter Kühlschrank/Geschirrspüler/eine intelligente Waschmaschine, ein intelligentes Auto/ein intelligenter Rasenmäher usw.) und/oder einen intelligenten Zähler 74N (z.B. Wasser-/Strom-/Gaszähler) umfassen. Es sollte klar sein, dass die in 4 gezeigten Typen der Einheiten 74A bis N nur veranschaulichend sein sollen und keinesfalls als einschränkend aufzufassen sind. Obwohl hierin nicht ausführlich erörtert, können die loT-Einheiten 74A bis N jede der folgenden Einheiten umfassen, sie sind aber nicht darauf beschränkt: Fernsehgeräte, Thermostate, Rauch-/CO2-Melder, Beleuchtung (z.B. HUE), weiße Ware (z.B. Waschmaschinen, Trockner), Küchengeräte (z.B. Herd, Mikrowelle, Kühlschrank, Geschirrspüler), Sicherheitssysteme (z.B. Kameras, Bewegungsmelder), Sprinklersystemsteuerungen, Schlösser (z.B. Garagentor, intelligente Türriegel), Küchengeräte (z.B. Kaffeemaschine, Toaster), tragbare Einheiten (z.B. Kameras), Wearables, Fahrzeuge (z.B. Autos, Boote usw.), automatische Jalousien, Luftverteilungseinrichtungen (z.B. Ventilator, automatische Belüftungselemente, Sensoren für relative Feuchtigkeit, Luftentfeuchter, automatische Fensteröffner), Wasserverteilungseinrichtungen (z.B. Leckerkennung, automatische Abschaltventile) und Sportausrüstung (z.B. Fahrräder, Stepper). Es sollte ebenfalls klar sein, dass die Einheiten 74A bis N des loT-Netzwerks 72 mit verschiedenen Typen von computerisierten Systemen und/oder Servern 12 über jeden Typ von Netzwerk und/oder eine über ein Netzwerk adressierbare Verbindung 78 Daten austauschen können, wie zum Beispiel ein PAN, WSAN, WLAN oder WAN, eine drahtgebundene Verbindung und/oder dergleichen.
-
Die Einheiten 74A bis N können so konfiguriert werden, dass sie jede Aktivität, jedes Ereignis, jeden Zustand oder jede Situation steuern können, die dem Haus 76 zugehörig sind. Zum Beispiel kann die Systemsteuerungseinheit 74B ein intelligenter Thermostat sein, der konfiguriert ist, um die Temperatur des Hauses 76 zu steuern, und kann ferner konfiguriert sein, um die Temperatur des Hauses 76 abhängig von Tages- oder Jahreszeit auf verschiedenen Temperaturen zu halten. In einem weiteren Fall kann die Systemsteuerungseinheit 74 B eine intelligente Glühlampe sein, die konfiguriert ist, um sich in Reaktion auf eine erkannte Bewegung oder deren Fehlen einzuschalten oder zu dimmen. In einem weiteren Beispiel kann ein intelligentes Haushaltsgerät 74C ein intelligenter Geschirrspüler sein, der konfiguriert ist, einen Geschirrspülzyklus erst auszuführen, wenn eine Schublade der Maschine einen Beladungsschwellenwert erreicht. In noch einem weiteren Beispiel kann das intelligente Haushaltsgerät 74C ein intelligenter Kühlschrank sein, der konfiguriert ist, eine Warnung auszugeben, wenn die Haltbarkeit eines darin befindlichen Nahrungsmittels abläuft.
-
Die Einheiten 74A bis N können des Weiteren oder alternativ dem Haus 76 zugehörige Daten verfolgen, aufzeichnen und/oder speichern. Dem Haus 76 zugehörige verfolgte Daten umfassen Daten, die durch die Einheiten 74A bis N überwacht werden, die jede Aktivität, jedes Ereignis, jeden Zustand oder jede Situation des Hauses 76 überwachen, sie sind aber nicht darauf beschränkt. Diese verfolgten Daten können auch überwacht werden, um dynamische Änderungen über einen Zeitraum anzuzeigen. Zum Beispiel kann ein intelligenter Zähler 74N konfiguriert werden, um die Nutzung einer Versorgungseinrichtung (z.B. Strom, Wasser oder Gas) durch das Haus 76 im Tagesverlauf aufzuzeichnen. In einem weiteren Beispiel kann ein Bewohner des Hauses 76 personengebundene Elektronik 74A nutzen (z.B. ein Smartphone mit einer Kamera), um eine digitale Fotografie aufzunehmen und zu speichern. In noch einem weiteren Beispiel kann die personengebundene Elektronik 74A ein Smart-TV sein, das konfiguriert ist, um Programme zu überwachen, die verschiedene Bewohner des Hauses 76 ansehen.
-
Die Erfinder der vorliegenden Erfindung haben festgestellt, dass zwar eine zunehmende Anzahl von loT-Einheiten und anderen intelligenten Einheiten in Häusern zu finden ist, diese Einheiten nicht immer in Gebrauch sind und/oder auf eine Weise verwendet werden, die insgesamt ineffizient ist. Dieses Problem verstärkt sich, da intelligente Einheiten zunehmend spezialisierter werden, um bestimmte Aufgaben auszuführen, die üblicherweise von Bewohnern des Hauses manuell ausgeführt werden, wie zum Beispiel zu erkennen, ob die Haltbarkeit eines Produkts im Kühlschrank abgelaufen ist und einer digitalen Einkaufsliste ein Ersatzprodukt hinzuzufügen oder in Reaktion auf einen erkannten Raumzustand in einem Raum automatisch staubzusaugen. Infolgedessen kann in einem einzelnen Haus jede von einer Gruppe von loT-Einheiten ihre eigenen Aufgaben zur selben Zeit ausführen, wobei jede Energie in Anspruch nimmt und Anforderungen an die Kapazität des drahtlosen Netzwerks stellt, das dem Haus zugehörig ist. Diese Einheiten können dann gezwungen sein, untereinander um die Netzwerkkapazität zu konkurrieren, wodurch noch mehr Energie in Anspruch genommen wird, aber im Vergleich mit einer einzelnen Einheit oder einer Person, die alle Aufgaben der Gruppe ausführt, weniger effizient gearbeitet wird. Ferner werden viele loT-Einheiten oder intelligente Einheiten, selbst wenn sie nicht genutzt werden, in einen Standby- oder Bereitschaftsmodus versetzt, was erfordert, dass die Einheit eingeschaltet bleiben muss, wodurch Energieressourcen weiter ineffizient in Anspruch genommen werden.
-
Dementsprechend haben die Erfinder der vorliegenden Erfindung ein System entwickelt, das von einer Mehrzahl von loT-Einheiten ausgeführte Aufgaben auf weniger loT-Einheiten überträgt, wodurch die Anzahl von benötigten Ressourcen zum Durchführen dieser Aufgaben verringert wird. Das von den Erfindern der vorliegenden Erfindung entwickelte System kann ferner konfiguriert werden, um Aufgaben von einer unabhängigen Partei (z.B. im Austausch gegen eine Entschädigung) auszuführen, wodurch Standby-Verarbeitungskapazität (z.B. CPU, Arbeitsspeicher, Netzwerk) und Speicherressourcen einer derzeit nicht in Gebrauch befindlichen loT-Einheit effizienter genutzt werden. Des Weiteren bieten Ausführungsformen der vorliegenden Erfindung mehrere Vorteile zum Optimieren einer Mehrzahl von Ressourcen, die in einem loT-Netzwerk verbunden sind. Zum Beispiel ermöglichen es Ausführungsformen der vorliegenden Erfindung, dass weniger loT-Ressourcen pro Aufgabe von einer loT-Einheit in Anspruch genommen werden. Außerdem können Ausführungsformen der vorliegenden Erfindung eine Menge von ausgeführten Aufgaben für einen bestimmten Ressourcen- und Stromverbrauch maximieren. Des Weiteren ermöglichen es Ausführungsformen der vorliegenden Erfindung die loT-Einheiten, die normalerweise Energie und Ressourcen in einem nicht nützlichen Standby-Modus verschwenden würden, zum Ausführen von nützlichen Aufgaben zu nutzen. Außerdem ermöglichen es Ausführungsformen der vorliegenden Erfindung, dass sich Einheiten in einem loT-Netzwerk selbst koordinieren, wodurch ein optimierter Vorteil für einen Nutzer bereitgestellt wird.
-
Unter erneuter Bezugnahme auf 4 wird eine Systemabbildung gezeigt, die die hierin erörterte Funktionalität gemäß einer Ausführungsform der vorliegenden Erfindung beschreibt. Es sollte klar sein, dass die hierin genannten Lehren in jedem Typ von Datenverarbeitungseinheit ausgeübt werden können, darunter einer vernetzten Datenverarbeitungsumgebung (z.B. Cloud-Computing-Umgebung 50), sie sind aber nicht darauf beschränkt. Ein eigenständiges Computersystem/ein eigenständiger Server 12 wird in 4 nur zu Veranschaulichungszwecken gezeigt. In dem Fall, dass die hierin genannten Lehren in einer vernetzten Datenverarbeitungsumgebung ausgeübt werden, muss nicht jeder Client eine Engine 80 zur loT-Ressourcenoptimierung haben (hierin im Folgenden „System 80“). Vielmehr könnte das gesamte oder ein Teil des Systems 80 auf einen Server oder eine serverfähige Einheit geladen werden, die mit den Clients (z.B. drahtlos) Daten austauscht, um eine Optimierung einer Mehrzahl von Ressourcen bereitzustellen, die in einem loT-Netzwerk verbunden sind. Unabhängig davon wird das System 80 wie dargestellt in dem Computersystem/Server 12 gezeigt. Im Allgemeinen kann das System 80 das Programm/Dienstprogramm auf dem Computersystem 12 von 1 umgesetzt werden und kann die hierin genannten Funktionen ermöglichen.
-
In diesem Sinne kann das System 70 mehrere Funktionen ausführen, die denen eines Mehrzweckcomputers ähnlich sind. Insbesondere kann das System 80 neben anderen Funktionen eine Mehrzahl von Ressourcen optimieren, die in einem loT-Netzwerk in einer vernetzten Datenverarbeitungsumgebung verbunden sind. Dazu kann das System 80 eine Gruppe von Komponenten umfassen (z.B. Programmmodule 42 von 1), um Ausführungsformen der vorliegenden Erfindung auszuführen. Diese Komponenten können eine Nutzungsüberwachungseinrichtung 82, einen Ressourcenoptimierer 84 und einen Kapazitätsanbieter 86 umfassen, sie sind aber nicht darauf beschränkt.
-
Über das Computersystem/den Server 12 kann das System 80 in Datenübertragung mit der Cloud-Computing-Umgebung 50 oder jeder anderen vernetzten Datenverarbeitungsumgebung (z.B. das Internet) stehen oder damit interagieren. Über die Cloud-Computing-Umgebung 50 kann eine unabhängige Cloud-Arbeitslast 90 für eine Zuweisung zu einer oder mehreren Ressourcen im Netzwerk des Internets der Dinge (loT) ausgewählt werden. Die unabhängige Cloud-Arbeitslast 90 ist eine Arbeitslast, für die ein Nutzer der Cloud-Computing-Umgebung 50 fordert, dass die Cloud-Computing-Umgebung 50 ein Verwenden von Ressourcen der Cloud-Computing-Umgebung 50 erfüllt. Dieser Nutzer der Cloud-Computing-Umgebung 50 ist kein Bewohner des Hauses 76. In einigen Ausführungsformen kann das Computersystem/der Server 12 eine netzwerkinterne loT-Einheit sein, die mit dem loT-Netzwerk 72 verbunden ist und in Datenübertragung steht. In einigen anderen Ausführungsformen kann das Computersystem/der Server 12 eine Komponente der Cloud-Computing-Umgebung 50 und mit dem loT-Netzwerk 72 entfernt angeordnet verbunden sein. Unabhängig davon ist das System 80 des Computersystems/Servers 12 konfiguriert, um die unabhängige Cloud-Arbeitslast 90 und das loT-Netzwerk 72 zu verbinden (z.B. durch ein virtuelles privates Netzwerk (VPN)).
-
Die Nutzungsüberwachungseinrichtung 82 des Systems 80, wie durch das Computersystem/den Server 12 ausgeführt, kann die Nutzung von Ressourcen von loT-Einheiten 74A bis N verfolgen, die in dem loT-Netzwerk 72 verbunden sind. Die durch die Nutzungsüberwachungseinrichtung 82 verfolgte Nutzung umfasst Aufgaben, die auf den Ressourcen und zugehörigen Zeiten ausgeführt werden, zu denen die Aufgaben ausgeführt werden. Die Ressourcen der loT-Einheiten 74A bis N können Speicherressourcen (z.B. Festplatte, Speicherkarten) und Verarbeitungsressourcen (z.B. CPU, Arbeitsspeicher, Netzwerk) umfassen, sie sind aber nicht darauf beschränkt. Zum Beispiel kann die Nutzungsüberwachungseinrichtung 82 die Speicher- und Verarbeitungsaktivität der Systemsteuerungseinheit 74B verfolgen und feststellen, dass 25 % des verfügbaren Speicherplatzes auf der Speicherressource der Systemsteuerungseinheit 74B derzeit genutzt werden, dass maximal 30 % des Speicherplatzes überhaupt genutzt werden, und dass daher 70 % des Speicherplatzes auf der Speicherressource der Systemsteuerungseinheit 74B niemals genutzt werden. Ferner kann die Nutzungsüberwachungseinrichtung 82 feststellen, dass 35 % der CPU-Verarbeitungskapazität der Verarbeitungsressource der Systemsteuerungseinheit 74B derzeit genutzt werden, dass während Mittags-Spitzenzeiten überhaupt maximal 55 % der Verarbeitungskapazität genutzt werden, und dass daher 45 % der Verarbeitungskapazität auf der Verarbeitungsressource der Systemsteuerungseinheit 74B niemals genutzt werden, und dass bis zu 65 % der Verarbeitungskapazität auf der Verarbeitungsressource der Systemsteuerungseinheit 74B außerhalb der Spitzenzeiten zur Verfügung stehen.
-
In einigen Ausführungsformen kann die Nutzungsüberwachungseinrichtung 82 einen verknüpften Datenspeicher von einigen oder allen überwachten Nutzungsaktivitäten in einem Repository einer Stammdatenverwaltung (MDM) erstellen. Diese MDM kann Nutzungsdaten getrennt für jede loT-Einheit 74A bis N oder sogar jede Verarbeitungs- oder Speicherressource von loT-Einheiten 74A bis N speichern. Die verknüpften Daten können überall gespeichert werden, wie zum Beispiel innerhalb des loT-Netzwerks 72 (z.B. über eine oder mehrere Einheiten des loT-Netzwerks 72) und/oder in einem Speicherbereich der Cloud-Computing-Umgebung 50.
-
Durch eine Überwachung/Verfolgung der Ressourcennutzung von loT-Einheiten 74A bis N, die in dem loT-Netzwerk 72 verbunden sind, kann die Nutzungsüberwachungseinrichtung 82 Nutzungsprofile von jeder Einheit 74A bis N und/oder jeder Ressource von jeder loT-Einheit 74A bis N entwickeln. Diese Nutzungsprofile können eine durchschnittliche oder typische Nutzung von loT-Einheiten 74A bis N und/oder Ressourcen von loT-Einheiten 74A bis N für einen bestimmten Zeitzyklus zuordnen, wie zum Beispiel täglich, wöchentlich oder monatlich. Die Nutzungsprofile können Spitzenbedarfszeiträume (und/oder Schwachlastbedarfszeiten) für loT-Einheiten 74A bis N und/oder Ressourcen von loT-Einheiten 74A bis N innerhalb des Zeitzyklus angeben. Zum Beispiel können die Nutzungsprofile der Systemsteuerungseinheit 74B angeben, dass das gesteuerte System die meiste Energie zwischen 11 und 16 Uhr verbraucht. In jedem Fall kann die Nutzungsüberwachungseinrichtung 82 Nutzungsmuster bestimmen, die angeben, wann die Einheiten 74A bis N in einem bestimmten Zeitzyklus erwartungsgemäß die meisten und die wenigsten der verfügbaren Ressourcen in Anspruch nehmen.
-
In einigen Ausführungsformen der vorliegenden Erfindung kann die Nutzungsüberwachungseinrichtung 82 abweichendes Nutzungsverhalten der Ressource und/oder Einheit 74A bis N im Vergleich mit dem typischen Ressourcen-Nutzungsmuster erkennen, das in dieser bestimmten Einheit und/oder dem Nutzungsprofil der Ressource erstellt wurde. Die Nutzungsüberwachungseinrichtung 82 kann automatisch (z.B. auf Grundlage einer mathematischen Formel) oder manuell (z.B. durch einen Nutzer) mit einer Schwellenwert-Abweichungstoleranz für alle oder einige Ressourcen konfiguriert werden, wobei jede Abweichung über oder unter diesem Toleranzwert eine Warnung für nicht normale Nutzung auslöst. In einigen dieser Ausführungsformen kann die Nutzungsüberwachungseinrichtung 82 konfiguriert werden, um in Reaktion auf eine Warnung für nicht normale Nutzung eine Aktion auszuführen. Diese Aktion kann ein Abschalten der bestimmten Einheit der loT-Einheiten 74A bis N, die die Wartung ausgelöst hat, ein Stoppen/Verhindern des Zugangs zu/der Nutzung von der bestimmten Ressource, die die Warnung ausgelöst hat und/oder ein Benachrichtigen eines Nutzers der Einheit oder eines Haushaltsmitglieds von der Warnung für die nicht normale Nutzung umfassen. Die Benachrichtigung kann zum Beispiel in der Form einer elektronischen Benachrichtigung vorliegen, wie zum Beispiel eine eMail oder SMS-Nachricht, oder einer Anzeige, die für einen oder mehrere Bewohner des Hauses 76 wahrnehmbar ist, wie zum Beispiel eine akustische (z.B. Piepton) oder visuelle (z.B. Blinklicht) Anzeige.
-
Gemäß Ausführungsformen der vorliegenden Erfindung kann die Nutzungsüberwachungseinrichtung 82 ferner zwei oder mehr Nutzungsprofile von loT-Einheiten 74A bis N und/oder Ressourcen von Einheiten 74A bis N einander zuordnen. Diese Zuordnung ermöglicht der Nutzungsüberwachungseinrichtung 82 während eines Zeitzyklus Zeiten, in denen den loT-Einheiten 74A bis N zusätzliche Ressourcen zur Verfügung stehen, sowie die Menge der verfügbaren Ressourcen zu erfassen. Ferner ermöglicht diese Zuordnung der Nutzungsüberwachungseinrichtung 82, Zeiten während des Zyklus zu ermitteln, in denen die Ressourcen einer Einheit nachgefragt werden, aber ergänzende Ressourcen (d.h. Ressourcen, die fähig sind, dieselben Aufgaben wie die angeforderte Ressource auszuführen) einer anderen Einheit keinen oder wenig Bedarf haben. Daher kann die Nutzungsüberwachungseinrichtung 82 alle Ressourcenaktivitäten in dem loT-Netzwerk 72 für einen vollständigen Zeitzyklus des loT-Netzwerks 72 zuordnen.
-
Der Ressourcenoptimierer 84 des Systems 80, wie durch das Computersystem/den Server 12 ausgeführt, kann erwartete Aufgaben zu erwarteten Zeiten und erwartete verfügbare Kapazitäten zu im Wesentlichen denselben erwarteten Zeiten auf Grundlage der verfolgten Nutzung der Ressourcen ermitteln. Dazu kann der Ressourcenoptimierer 84 die Nutzungszuordnung von einigen oder allen Ressourcenaktivitäten in dem loT-Netzwerk 72 analysieren, die durch die Nutzungsüberwachungseinrichtung 82 aus Ressourcen-Nutzungsprofilen von loT-Einheiten 74A bis N und/oder Ressourcen von loT-Einheiten 74A bis N entwickelt wurde. Der Ressourcenoptimierer 84 kann konfiguriert werden, um Möglichkeiten zur Ressourcenoptimierung auf Grundlage der Zuordnung zu erkennen. Zum Beispiel kann der Ressourcenoptimierer 84 bestimmen, dass in Spitzenzeiten zur Tagesmitte 30 % des Speicherplatzes und 55 % der Verarbeitungskapazität der Systemsteuerungseinheit 74B genutzt werden, und dass während dieses Zeitraums nur 5 % des Speicherplatzes und 7 % der Verarbeitungskapazität von intelligenten Haushaltsgeräten 74C genutzt werden.
-
Der Ressourcenoptimierer 84 des Systems 80, wie durch das Computersystem/den Server 12 ausgeführt, kann ferner zusätzliche Kapazität auf einer ersten Ressource generieren, indem eine erwartete Aufgabe von der ersten Ressource auf eine zweite Ressource zu einem Zeitpunkt übertragen wird, der der erwarteten Aufgabe entspricht. Dazu kann der Ressourcenoptimierer 84 Aufgaben, die normalerweise auf einer loT-Einheit ausgeführt werden, an eine andere loT-Einheit weiterleiten. Zum Beispiel kann der Ressourcenoptimierer 84 Elemente, die in dem Speicherplatz der loT-Einheit 74C gespeichert sind, zu dem Speicherplatz der loT-Einheit 74B übertragen, und kann Verarbeitungsaufgaben von der Verarbeitungskomponente der loT-Einheit 74C zu der Verarbeitungskomponente der loT-Einheit 74B übertragen. In einigen Ausführungsformen kann dies durch Planung von Mikrodiensten erreicht werden, die eine oder mehrere Arbeitslasten von einer ersten Einheit auf einer oder mehreren zweiten Einheiten ausführen. Damit bleiben eine oder mehrere Ressourcen der loT-Einheit 74C frei. Dementsprechend wird die loT-Einheit 74C zum Beispiel dadurch optimiert, dass ermöglicht wird, die loT-Einheit 74C in einen niedrigeren Energiezustand zu versetzen, der Energie spart, die zur Backup-Sicherung/Verarbeitung genutzt oder für die Ausführung anderer Aufgaben angeboten wird, was im Folgenden ausführlicher erörtert wird.
-
In einigen Ausführungsformen kann die Übertragung von Aufgaben von einer loT-Einheit auf eine andere loT-Einheit ein Nachrichtenprotokoll auf Grundlage von Veröffentlichung/Abonnement verwenden, wie zum Beispiel Message Queuing Telemetry Transport (MQTT), um Daten von einer loT-Einheit 74A bis N zu einer anderen loT-Einheit 74A bis N im loT-Netzwerk 72 zu senden. In einer derartigen Ausführungsform kann der Ressourcenoptimierer 84 einen Nachrichtenmakler wie Eclipse Mosquitto verwenden, um das MQTT-Protokoll umzusetzen. Des Weiteren oder alternativ kann die loT-Plattform Watson von IBM auf Bluemix als MQTT-Server verwendet werden. Es sollte jedoch klar sein, dass Ausführungsformen der vorliegenden Erfindung nicht auf Bluemix und/oder MQTT beschränkt sind, und Ausführungsformen der vorliegenden Erfindung daher jedes derzeit bekannte oder zukünftig entwickelte Protokoll zum Senden und Empfangen von Daten zu und von loT-Einheiten 74A bis N verwenden können. Alle hierin verwendeten Marken und Handelsmarken sind Eigentum der jeweiligen Besitzer und werden nur zu veranschaulichenden und beschreibenden Zwecken verwendet.
-
In einigen Ausführungsformen kann der Ressourcenoptimierer 84 verfügbare Speicherressourcen auf einer oder mehreren loT-Einheiten als Sicherungs-Datenspeicher nutzen. Zum Beispiel können mit einer Kameraeinheit oder einem Kameratelefon aufgenommene Fotos in einer oder mehreren loT-Einheiten 74A bis N gesichert werden, wie zum Beispiel einem intelligenten Haushaltsgerät 74C, in dem solche Fotos üblicherweise nicht gespeichert würden.
-
In einigen Ausführungsformen kann der Ressourcenoptimierer 84 des Systems 80 konfiguriert werden, um eine Aufgabe auf einer loT-Einheit 74A bis N zu planen, die zu einer Aufgabe in Beziehung steht, deren Ausführung erwartet wird oder die derzeit auf einer bestimmten anderen loT-Einheit 74A bis N ausgeführt wird. In einigen Ausführungsformen kann diese Planung auf Grundlage der Zuordnungsressource oder der Nutzung der loT-Einheiten erfolgen. Ferner kann die Planung einer Aufgabe auf einer zugehörigen loT-Einheit 74A bis N in Reaktion auf ein Lesen von Daten von einer anderen loT-Einheit 74A bis N erfolgen. Zum Beispiel kann der Ressourcenoptimierer 84 die Helligkeit oder deren Fehlen auf einer loT-Einheit eines Smart-TV erfassen und in Reaktion darauf loT-Einheiten eines Sets von intelligenten Glühlampen dimmen. In einem weiteren Beispiel kann der Ressourcenoptimierer 84 erkennen, dass die loT-Einheit des Smart-TV in Gebrauch ist und in Reaktion darauf die Hintergrundgeräusche verringern, die von anderen loT-Einheiten stammen. Andere Beispiel umfassen, sind aber nicht beschränkt auf: ein Ändern eines Bewässerungsplans eines intelligenten Sprinklersystems in Reaktion auf erkannten Regen oder ein Öffnen von automatischen Fenstern in dem Fall, dass eine Außentemperatur wünschenswerter als eine Innentemperatur ist und/oder eine erkannte Belastung durch Pollen oder Luftverschmutzung niedrig ist.
-
Unter folgender Bezugnahme auf 5 wird zusätzlich zu 4 ein veranschaulichendes Beispiel für eine Umsetzung einer Ausführungsform der vorliegenden Erfindung gezeigt. Der Kapazitätsanbieter 86 des Systems 80, wie durch das Computersystem/den Server 12 ausgeführt, kann die zusätzliche Kapazität, die auf einer loT-Ressource zu einem erwarteten Zeitpunkt generiert wird, für die Nutzung durch eine unabhängige Partei angeben und der zusätzlichen Kapazität der loT-Ressource eine Last von der unabhängigen Partei zuweisen. Dazu kann der Kapazitätsanbieter 86 eine oder mehrere loT-Einheiten 74A bis N mit einem Cloud-Computing-Ressourcenmakler konfigurieren, um einen Anteil der freien/zusätzlichen Speicher-/Verarbeitungskapazität dieser einen oder der mehreren loT-Einheiten 74A bis N bereitzustellen. In einigen Ausführungsformen ist der Cloud-Computing-Ressourcenmakler eine Komponente des Kapazitätsanbieters 86, während in einigen anderen Ausführungsformen der Cloud-Computing-Ressourcenmakler eine Komponente einer Cloud-Computing-Umgebung 500 ist.
-
Der Kapazitätsanbieter 86 kann über den Cloud-Computing-Ressourcenmakler in einigen Ausführungsformen den Zugriff auf die freie/zusätzliche Speicher-/Verarbeitungskapazität von einer oder mehreren loT-Einheiten 74A bis N aus der Cloud-Computing-Umgebung 50 konfigurieren. Dieser Zugriff kann über ein privates und sicheres Mittel erfolgen, wie beispielsweise einen Gateway-VPN-Mechanismus. In Reaktion darauf, dass ein Nutzer 94 einer Cloud-Arbeitslast Ressourcen anfordert, auf denen eine Arbeitslast von dem Cloud-Computing-Ressourcenmakler ausgeführt werden soll, kann der Kapazitätsanbieter 86 dem Nutzer 94 der Cloud-Arbeitslast 94 Zugriff auf die freie/zusätzliche Speicher-/Verarbeitungskapazität von einer oder mehreren loT-Einheiten 74A bis N gewähren, zum Beispiel über den VPN-Mechanismus. Es sollte klar sein, dass der Nutzer 94 der Cloud-Arbeitslast ein von der Cloud-Computing-Umgebung 50 unabhängiger Nutzer ist und keine Verbindung mit dem Haushaltsmitglied 92 des Hauses 76 hat. Der Kapazitätsanbieter 86 kann anschließend gestatten, dass eine Arbeitslast des Nutzers 94 der Cloud-Arbeitslast ausgeführt wird oder andernfalls die freie Speicher- oder Verarbeitungskapazität der verfügbaren einen oder mehreren loT-Einheiten nutzen. Aus der Perspektive des Nutzers 94 der Cloud-Arbeitslast scheint die Arbeitslast nahtlos eine Ressource der Cloud-Computing-Umgebung 50 zu nutzen.
-
In einigen Ausführungsformen kann der Kapazitätsanbieter 86 diese freie/zusätzliche Speicher-/Verarbeitungskapazität dem Cloud-Computing-Ressourcenmakler im Austausch gegen einen Satz einer monetären Entschädigung oder irgendeiner anderen Form von Entschädigung bereitstellen. Daher kann der Kapazitätsanbieter 86 und/oder der Cloud-Computing-Ressourcenmakler die Nutzung der freien Speicher- oder Verarbeitungskapazität der loT-Einheiten 74A bis N zum Zweck einer Bestimmung einer Entschädigungsmenge, auf die das Haushaltsmitglied 92 im Austausch gegen die Einheitennutzung Anspruch hat, überwachen und/oder protokollieren (z.B. in regelmäßigen Intervallen). In einigen Ausführungsformen kann der Kapazitätsanbieter 86 und/oder der Cloud-Computing-Ressourcenmakler eine Entschädigung (z.B. Zahlung) von dem Nutzer 94 der Cloud-Arbeitslast erhalten und die Entschädigung an das Haushaltsmitglied 92 verteilen.
-
In einigen Ausführungsformen kann der Kapazitätsanbieter 86 eine oder mehrere Ressourcen von loT-Einheiten 74A bis N als einzelnes Angebot zur Nutzung durch einen Nutzer 94 der Cloud-Arbeitslast bündeln. Zum Beispiel kann eine zusätzliche Verarbeitungskapazität der loT-Einheit 74B für einen einstündigen Block mit einer zusätzlichen Speicherkapazität der loT-Einheit 74C für einen dreistündigen Block bezahlt werden. Es sollte klar sein, dass die gebündelten Ressourcen von denselben oder verschiedenen Einheiten des loT-Netzwerks 72 stammen können, dieselben oder verschiedene Ressourcentypen sein können, für jeden Zeitrahmen angeboten werden und von beliebiger Anzahl sein können. In einigen Ausführungsformen kann der Kapazitätsanbieter 86 bestimmen, welche Ressourcen als ein Angebot auf Grundlage der Zuordnung von Nutzungsprofilen der Einheiten 74A bis N durch die Nutzungsüberwachungseinrichtung 82 und Optimierung/Konzentrierung von aktiven Ressourcen durch den Ressourcenoptimierer 84 gebündelt werden.
-
In einigen Ausführungsformen kann der Kapazitätsanbieter 86 konfiguriert werden, um einem Haushaltsmitglied 92 zu ermöglichen, eine Menge oder einen Prozentsatz von verfügbarer zusätzlicher/freier Kapazität oder einen Zeitrahmen zu wählen, in dem eine derartige zusätzliche/freie Kapazität verfügbar ist, um unabhängigen Parteien über den Cloud-Computing-Ressourcenmakler angeboten zu werden. In einigen weiteren Ausführungsformen kann der Kapazitätsanbieter 86 konfiguriert sein, ein Entschädigungsangebot vom Nutzer 94 der Cloud-Arbeitslast im Austausch gegen die Nutzung der freien Kapazität der loT-Ressource zu erhalten und dem Haushaltsmitglied 92 zu gestatten, das Angebot mit dem vorgeschlagenen Entschädigungssatz zu akzeptieren oder abzulehnen. In einigen Ausführungsformen kann der Kapazitätsanbieter 86 einem Haushaltsmitglied 92 eine Schnittstelle angeben (z.B. eine Omnichannel-Schnittstelle), die es dem Haushaltsmitglied 92 ermöglicht, Entschädigungsangebote vor einem Auswählen einer unabhängigen Partei zu vergleichen, um ein Erwerben der zusätzlichen Kapazität zu ermöglichen.
-
Gemäß einigen Ausführungsformen der vorliegenden Erfindung kann der Kapazitätsanbieter 86 des Systems 80, wie durch das Computersystem/den Server 12 ausgeführt, zusätzlich oder alternativ die unabhängige Partei mit verfolgten Nutzungsdaten von einer oder mehreren loT-Einheiten 74A bis N des loT-Netzwerks 72 bereitstellen. In diesen Ausführungsformen kann der Kapazitätsanbieter 86 kontextabhängig einen Datentyp (z.B. loT-Einheiten-Nutzungsdaten, loT-Einheiten-Kapazitätsdaten) und eine Klassifizierung von Daten bestimmen (z.B. Anzeige von Statistiken durch ein Smart-TV, Heiz-/Kühlprofil von einem intelligenten Thermostaten, Übungsdaten von einer Wearable-Einheit) bestimmen, die in jedem verknüpften Abschnitt des MDM-Repository gespeichert sind. Diese Daten können anonymisiert werden, sodass das Haushaltsmitglied 92 anhand der Daten nicht identifiziert werden kann. Der Kapazitätsanbieter 86 kann auch bestimmen, ob zwei oder mehr Datensets zueinander in Beziehung stehen und/oder gebündelt werden sollten, um einen potenziellen Wert der Daten auf Grundlage des klassifizierten Datentyps zu maximieren. Zum Beispiel weisen Übungsdaten von einer Wearable-loT-Einheit, Gewichtsverlustdaten von einer intelligenten Waage und Lebensmittelverbrauchsdaten von einem intelligenten Kühlschrank eine hohe Wahrscheinlichkeit auf, zueinander in Beziehung/in Korrelation zu stehen.
-
Der Kapazitätsanbieter
86 kann ferner Typen von Parteien bestimmen, die auf Grundlage des kontextabhängig bestimmten Typs oder der Klassifizierung der Daten an den gebündelten Daten (z.B. Versicherungsgesellschaften und Krankenkassen in Bezug auf Übungs-/Gewichtsverlust-/Nahrungsmittel-Daten) interessiert sein können. Nicht einschränkende Beispiele von Parteien, die der Kapazitätsanbieter
86 in Reaktion auf bestimmte Klassen oder Typen von Daten identifizieren kann, sind in der folgenden Tabelle aufgelistet.
Datenquelle | Kontextabhängiger Typ/Klassifizierung | Potenziell interessierte Parteien |
Fernsehgeräte | Statistiken anzeigen | Daten-Unternehmen anzeigen (z.B. Neilson) |
Thermostate | Temperatur, Heiz-/Kühlprofil | Heiz-/Kühlkomponenten |
Rauch-/CO2-Melder | Batterielebensdauer, Auftreten von falschen Alarmen | Versicherungsgesellschaften |
Beleuchtung | Nutzungsmuster (Abend- bis Morgendämmerung, Nachtbeleuchtung) | Hausbesitzerversicherung, Beleuchtungsunternehmen |
Weiße Ware | Nutzungsinformationen nach Typ | Haushaltsgerätehersteller |
Küchengeräte | Voreinstellungen, Nutzung | Haushaltsgerätehersteller |
Sicherheitssystem | Externe Videodaten zur Überwachung von Verkehrsmustern | Sicherheitsunternehmen, Strafverfolgungsbehörden, Hausbesitzerversicherung |
Sprinklersystem | Nutzungsmuster, regulatorische Anforderungen | Kommunen, Wasserwerke |
Sperren | Ankunfts- und Servicezeiten des Anbieters | Versicherungsgesellschaften |
Küchengeräte | Nutzungsdaten | Marketing-Unternehmen |
Tragbare Einheiten | Bilder | Archivbilderverkäufer |
Wearables | Übungsdaten | Versicherungsgesellschaften und Krankenkassen |
Fahrzeuge | Gebrauchsinformationen, besuchte Standorte, Verkehrsmuster, Fahrgewohnheiten | Automobilfirmen, Autovermietungen, Versicherungsgesellschaften |
Automatische Jalousien | Wach-/Schlafgewohnheiten | Sicherheitsunternehmen, Wetterdienste |
Luftverteilung | Effizienz der Klimatechnik | Klimatechnikunternehmen |
Wasserverteilung | Lecks, Aufnahmeraten | Wasserwerke, Versicherungsgesellschaften |
Sportausrüstung | Nutzungsstatistiken | Versicherungsgesellschaften und Krankenkassen |
-
Der Kapazitätsanbieter 86 kann eine als potenziell interessiert identifizierte Partei kontaktieren und eine oder mehrere Klassen von anonymisierten Daten im Austausch gegen eine Entschädigung anbieten. In diesen Ausführungsformen ist der Kapazitätsanbieter 86 konfiguriert, um für das Haushaltsmitglied 92 einen Katalog von verknüpften Daten bereitzustellen, die in dem MDM-Repository gespeichert sind, und um von dem Haushaltsmitglied 92 eine Auswahl zu erhalten, für welche Daten es dem Kapazitätsanbieter 86 gestattet ist, eine Entschädigung anzubieten. Sobald der Kapazitätsanbieter 86 einen potenziellen Käufer gefunden hat, kann der Kapazitätsanbieter 86 konfiguriert werden, um von dem Haushaltsmitglied 92 die Autorisierung anzufordern, mit dem Austausch von Daten gegen Entschädigung fortzufahren.
-
Wie in 6 dargestellt, führt ein System (z.B. das Computersystem 12) in einer Ausführungsform die hierin offenbarten Methodiken aus. Gezeigt wird ein Prozessablaufplan 600 zum Optimieren einer Mehrzahl von Ressourcen, die in einem loT-Netzwerk verbunden sind. In Schritt 602 wird die Nutzung einer ersten Ressource und die Nutzung einer zweiten Ressource aus der Mehrzahl von Ressourcen verfolgt, die mit dem loT-Netzwerk verbunden sind, wobei die Nutzung der ersten Ressource eine erste Aufgabe und einen Zeitpunkt aufweist, an dem die erste Aufgabe ausgeführt wird, und die Nutzung der zweiten Ressource eine zweite Aufgabe und einen Zeitpunkt aufweist, an dem die zweite Aufgabe ausgeführt wird. In Schritt 604 wird eine erwartete erste Aufgabe an einem erwarteten Zeitpunkt auf Grundlage der verfolgten Nutzung der ersten Ressource identifiziert, und eine erwartete Kapazität zu im Wesentlichen demselben erwarteten Zeitpunkt wird auf der zweiten Ressource auf Grundlage der verfolgten Nutzung der zweiten Ressource identifiziert. In Schritt 606 wird eine zusätzliche Kapazität auf der ersten Ressource durch ein Übertragen der erwarteten ersten Aufgabe auf die zweite Ressource für den erwarteten Zeitpunkt generiert. In Schritt 608 wird die zusätzliche Kapazität der ersten Ressource an dem erwarteten Zeitpunkt für eine Nutzung durch eine unabhängige Partei angegeben. In Schritt 610 wird der zusätzlichen Kapazität der ersten Ressource eine Last von der unabhängigen Partei zugewiesen.
-
Der Prozessablaufplan von 6 veranschaulicht die Architektur, die Funktionalität und den Betrieb möglicher Umsetzungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder den Blockschaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine Anweisung oder mehrere ausführbare Anweisungen zum Umsetzen der bestimmten logischen Funktion(en) aufweisen. In einigen alternativen Umsetzungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt auftreten. Zum Beispiel können zwei nacheinander gezeigte Blöcke tatsächlich im Wesentlichen parallel ausgeführt werden, oder die Blöcke können manchmal in der umgekehrten Reihenfolge ausgeführt werden, was von der beteiligten Funktionalität abhängt. Es ist ferner anzumerken, dass jeder Block der Blockschaubilder und/oder der Ablaufplandarstellungen sowie Kombinationen von Blöcken in den Blockschaubildern und/oder der Ablaufplandarstellung durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die angegebenen Funktionen oder Handlungen durchführen oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
-
Einige der Funktionskomponenten, die in dieser Patentschrift beschrieben werden, wurden als Systeme oder Einheiten bezeichnet, um insbesondere ihre Umsetzungsunabhängigkeit hervorzuheben. Zum Beispiel kann ein System oder eine Einheit als eine Hardware-Schaltung umgesetzt werden, die benutzerdefinierte VLSI-Schaltungen oder Gate-Arrays, handelsübliche Halbleiter wie Logik-Chips, Transistoren oder andere diskrete Komponenten aufweist. Ein System oder eine Einheit kann auch in programmierbaren Hardware-Einheiten umgesetzt werden, wie beispielsweise feldprogrammierbare Gate-Arrays, programmierbare Feldlogik, programmierbare Logikeinheiten und dergleichen. Ein System oder eine Einheit kann auch in Software zur Ausführung durch verschiedene Prozessortypen umgesetzt werden. Ein System oder eine Einheit oder Komponente von ausführbarem Code kann zum Beispiel einen oder mehrere physische oder logische Blöcke von Computeranweisungen aufweisen, die zum Beispiel als Objekt, Prozedur oder Funktion organisiert sein können. Die ausführbaren Dateien eines identifizierten Systems oder einer Einheit müssen jedoch nicht physisch gemeinsam angeordnet sein, sondern können unterschiedliche Anweisungen aufweisen, die in verschiedenen Speicherorten gespeichert sind, die im Fall einer logischen Verbindung das System oder die Einheit aufweisen und den angegebenen Zweck für das System oder die Einheit erzielen.
-
Ferner könnte ein System oder eine Einheit von ausführbarem Code eine einzelne Anweisung oder viele Anweisungen sein und sogar über mehrere verschiedene Codesegmente, auf verschiedene Programme und über mehrere Arbeitsspeichereinheiten verteilt sein. Desgleichen können betriebliche Daten identifiziert und hierin in Modulen veranschaulicht werden und können in jeder geeigneten Form verkörpert und in jedem geeigneten Typ von Datenstruktur organisiert sein. Die betrieblichen Daten können als einzelnes Datenset erfasst werden oder über verschiedene Speicherorte verteilt sein, einschließlich über verschiedene Speichereinheiten und unterschiedliche Arbeitsspeichereinheiten.
-
Ferner können Systeme/Einheiten auch als eine Kombination von Software und einer oder mehreren Hardware-Einheiten umgesetzt werden. Zum Beispiel kann das Programm/Dienstprogramm 40 in der Kombination eines durch Software ausführbaren Codes verkörpert werden, der in einem Arbeitsspeichermedium (z.B. Arbeitsspeichereinheit) gespeichert ist. In einem weiteren Beispiel kann ein System oder eine Einheit die Kombination eines Prozessors sein, der auf einem Satz betrieblicher Daten arbeitet.
-
Wie oben ebenfalls angemerkt, können einige Ausführungsformen in Hardware verkörpert sein. Auf die Hardware kann als ein Hardware-Element verwiesen werden. Im Allgemeinen kann ein Hardware-Element auf alle Hardware-Strukturen verweisen, die zum Ausführen bestimmter Operationen angeordnet sind. In einer Ausführungsform können die Hardware-Elemente zum Beispiel alle analogen oder digitalen elektrischen oder elektronischen Elemente enthalten, die auf einem Substrat hergestellt werden. Die Herstellung kann unter Verwendung von Techniken von integrierten Schaltungen (IC) auf Siliziumgrundlage ausgeführt werden, wie zum Beispiel komplementäre Metalloxidhalbleiter- (CMOS), bipolare und bipolare CMOS- (BiCMOS) Techniken. Beispiele für Hardware-Elemente können Prozessoren, Mikroprozessoren, Schaltungen, Schaltungselemente (z.B. Transistoren, Widerstände, Kondensatoren, Induktoren usw.), integrierte Schaltungen, anwendungsspezifische integrierte Schaltungen (ASIC), programmierbare Logikeinheiten (PLD), digitale Signalprozessoren (DSP), feldprogrammierbares Gate-Array (FPGA), Logikgatter, Register, Halbleitereinheiten, Chips, Mikrochips, Chip-Sets usw. umfassen. Die Ausführungsformen sind in diesem Kontext nicht eingeschränkt.
-
Alle hierin bereitgestellten Komponenten können von einem Diensteanbieter bereitgestellt, verwaltet, gewartet usw. werden, der eine Bereitstellung oder Integration einer Datenverarbeitungs-Infrastruktur in Bezug auf einen Prozess zur Optimierung einer Mehrzahl von Ressourcen anbietet, die in einem loT-Netzwerk verbunden sind. Somit offenbaren Ausführungsformen hierin einen Prozess zum Unterstützen einer ComputerInfrastruktur, die ein Integrieren., Hosten, Verwalten und Bereitstellen von durch einen Computer lesbarem Code in einem Datenverarbeitungssystem aufweist (z.B. das Computersystem 12), wobei der Code in Kombination mit dem Datenverarbeitungssystem fähig ist, die hierin beschriebenen Funktionen auszuführen.
-
In einer weiteren Ausführungsform stellt die Erfindung ein Verfahren bereit, das die Prozessschritte der Erfindung auf Grundlage eines Abonnements, von Werbung und/oder Gebühren ausführt. Das heißt, ein Diensteanbieter wie beispielsweise ein Lösungsintegrator kann anbieten, einen Prozess zum Optimieren einer Mehrzahl von Ressourcen zu erstellen, zu verwalten, zu unterstützen usw., die in einem loT-Netzwerk verbunden sind. In diesem Fall kann der Diensteanbieter eine Computerinfrastruktur erstellen, verwalten, unterstützen usw., die die Prozessschritte der Erfindung für einen oder mehrere Kunden ausführt. Der Diensteanbieter kann wiederum eine Zahlung von dem bzw. den Kunden mit einem Abonnement und/oder einer Gebührenvereinbarung erhalten, und/oder der Diensteanbieter kann eine Zahlung aus dem Verkauf von Werbeinhalt an einen oder mehrere Drittanbieter erhalten.
-
Wie oben ebenfalls angemerkt, können einige Ausführungsformen in Software verkörpert sein. Auf die Software kann als ein Software-Element verwiesen werden. Im Allgemeinen kann ein Hardware-Element auf alle Hardware-Strukturen verweisen, die zum Ausführen bestimmter Operationen angeordnet sind. In einer Ausführungsform können die Software-Elemente zum Beispiel Programmanweisungen und/oder Daten enthalten, die zur Ausführung durch ein Hardware-Element wie beispielsweise einen Prozessor angepasst sind. Programmanweisungen können eine organisierte Liste von Befehlen enthalten, die Wörter, Werte oder Symbole aufweisen, die in einer vorab festgelegten Syntax angeordnet sind, die bei Ausführung einen Prozessor veranlassen kann, ein entsprechendes Set von Operationen auszuführen.
-
Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt auf jeder möglichen technischen Detailintegrationsebene handeln. Das Computerprogrammprodukt kann ein durch einen Computer lesbares Speichermedium (oder -medien) enthalten, auf dem durch einen Computer lesbare Programmanweisungen gespeichert sind, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
-
Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch eine Einheit zur Ausführung von Anweisungen beibehalten und speichern kann. Das durch einen Computer lesbare Speichermedium kann zum Beispiel eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiter-Speichereinheit oder jede geeignete Kombination aus dem Vorgenannten sein, es ist aber nicht darauf beschränkt. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums gehören die Folgenden: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer CD-ROM, eine DVD, ein Speicher-Stick, eine Diskette, eine mechanisch codierte Einheit wie zum Beispiel Lochkarten oder erhabene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination des Vorgenannten. Ein durch einen Computer lesbares Speichermedium soll, wie hierin verwendet, nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder andere Übertragungsmedien ausbreiten (z.B. durch ein Lichtwellenleiterkabel geleitete Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
-
Hierin beschriebene durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetzwerk und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Leitwegrechner, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs-/Verarbeitungseinheit weiter.
-
Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten, Konfigurationsdaten für integrierte Schaltungen oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben sind, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o.ä. sowie prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. In dem letzteren Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch jeden Typ von Netzwerk verbunden werden, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetzwerk (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, feldprogrammierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die computerlesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der computerlesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
-
Aspekte der vorliegenden Erfindung werden hierin unter Bezugnahme auf Veranschaulichungen von Ablaufplänen und/oder Blockschaubildern von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es sollte klar sein, dass jeder Block der Ablaufplanveranschaulichungen und/oder der Blockschaubilder und Kombinationen von Blöcken in den Ablaufplanveranschaulichungen und/oder den Blockschaubildern mittels durch einen Computer lesbare Programmanweisungen umgesetzt werden können.
-
Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, sodass die über den Prozessor des Computers bzw. eine andere programmierbare Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegebenen Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, sodass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt aufweist, darunter Anweisungen, die Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaubilder angegebenen Funktion/Schritts umsetzen.
-
Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Arbeitsschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen durch einen Computer umgesetzten Prozess zu erzeugen, sodass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegebenen Funktionen/Schritte umsetzen.
-
Die Ablaufpläne und Blockschaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder den Blockschaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine Anweisung oder mehrere ausführbare Anweisungen zum Umsetzen der bestimmten logischen Funktion(en) aufweisen. In einigen alternativen Umsetzungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt auftreten. Zum Beispiel können zwei nacheinander gezeigte Blöcke tatsächlich im Wesentlichen parallel ausgeführt werden, oder die Blöcke können manchmal in der umgekehrten Reihenfolge ausgeführt werden, was von der beteiligten Funktionalität abhängt. Es ist ferner anzumerken, dass jeder Block der Blockschaubilder und/oder der Ablaufplandarstellungen sowie Kombinationen von Blöcken in den Blockschaubildern und/oder der Ablaufplandarstellung durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die angegebenen Funktionen oder Handlungen durchführen oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
-
Es ist offensichtlich, dass hierin Ansätze zum Optimieren einer Mehrzahl von Ressourcen bereitgestellt worden sind, die in einem loT-Netzwerk verbunden sind. Zwar wurde die Erfindung insbesondere in Verbindung mit beispielhaften Ausführungsformen gezeigt und beschrieben, doch wird dem Fachmann die Möglichkeit von Variationen und Modifizierungen klar sein. Daher sollte klar sein, dass die Ansprüche im Anhang dazu dienen sollen, alle derartigen Modifizierungen und Änderungen abzudecken, die unter den Schutzumfang dieser Erfindung fallen.