-
HINTERGRUND
-
Die vorliegende Erfindung betrifft allgemein ein Verfahren, ein System und ein Computerprogramm zum Verwalten von Verbindungen für Einheiten. Insbesondere betrifft die vorliegende Erfindung ein Verfahren, ein System und ein Computerprogrammprodukt für eine Verbindungsverwaltung für mehrere Einheiten.
-
Benutzer haben in der Regel Zugang zu mehr als einer datenübertragungsfähigen Einheit. Zum Beispiel sind Einheiten in der Form eines Smartphones, eines Tablet-Computers, eines Laptop-Computers, Desktop-Computers, einer tragbaren Datenverarbeitungseinheit, eines Smart Speakers oder jeder anderen geeigneten Einheit alle fähig, Anwendungssoftware auszuführen, um einem Benutzer einer Einheit zu ermöglichen, mit Software Daten auszutauschen, die auf einer anderen Einheit oder einem anderen Datenverarbeitungssystem ausgeführt wird.
-
Da Benutzer in der Regel Zugang zu mehr als einer datenübertragungsfähigen Einheit haben, werden Einheiten von den Benutzern oft zusammen auf einem Konto verknüpft, in der Regel durch Verwenden einer einzelnen Benutzeridentifikation, die für einen Benutzer eindeutig ist. Zum Beispiel könnte ein Benutzer sein bzw. ihr Smartphone, den Tablet-Computer, den Laptop-Computer und den Desktop-Computer im Büro mit Telefonie-Anwendungen, von denen alle dieselbe registrierte Telefonnummer verwenden, für Sprachübertragungen und Textnachrichten konfigurieren. Infolgedessen kann dieser Benutzer Anrufe auf jeder Einheit beantworten, die ihm bzw. ihr sofort zur Verfügung steht, wie zum Beispiel der Desktop-Computer im Büro und das Smartphone bei der Heimfahrt vom Büro. Als weiteres Beispiel könnte ein Benutzer sein bzw. ihr Smartphone, den Tablet-Computer, den Laptop-Computer und die Smart Speaker im Wohnzimmer und Schlafzimmer so konfigurieren, dass diese ein gemeinsames Konto für Musik-Streaming verwenden, und anschließend das Konto zum Abspielen von Musik auf der Einheit verwenden, auf der es gerade am günstigsten ist.
-
Eine Datenübertragungsanforderung ist eine Anforderung zum Herstellen einer Datenübertragung zwischen einer sendenden Einheit und einer Einheit, die einem Konto zugehörig ist. Beispielhafte Datenübertragungsanforderungen umfassen eine Angabe eines eingehenden Sprach- oder Video-Anrufs und eine Antwort auf eine Anforderung des Benutzers, auf einem entfernt angeordneten Computersystem gespeicherte Musik abzuspielen.
-
KURZDARSTELLUNG DER ERFINDUNG
-
Die veranschaulichenden Ausführungsformen stellen ein Verfahren, ein System und ein Computerprogrammprodukt bereit. Eine Ausführungsform umfasst ein Verfahren, das eine Verbindungsanforderung für ein Konto empfängt, wobei das Konto einer Gruppe von Einheiten zugehörig ist, wobei die Verbindungsanforderung eine Anforderung zum Herstellen einer Datenübertragung zwischen einer sendenden Einheit und einer Einheit aufweist, die dem Konto zugehörig ist. Eine Ausführungsform bestimmt durch Analysieren von Einheitennutzungsdaten für eine erste Einheit in der Gruppe von Einheiten eine Verfügbarkeitsbewertung der ersten Einheit. Eine Ausführungsform stellt für eine Verbindung auf Grundlage der Verfügbarkeitsbewertung der ersten Einheit die erste Einheit dar. Eine Ausführungsform verbindet in Reaktion auf das Darstellen die sendende Einheit und die erste Einheit.
-
Eine Ausführungsform umfasst ein durch einen Computer verwendbares Programmprodukt. Das durch einen Computer verwendbare Programmprodukt umfasst eine oder mehrere durch einen Computer lesbare Speichereinheiten und Programmanweisungen, die auf mindestens einer von der einen oder den mehreren Speichereinheiten gespeichert sind.
-
Eine Ausführungsform umfasst ein Computersystem. Das Computersystem umfasst einen oder mehrere Prozessoren, einen oder mehrere durch einen Computer lesbare Arbeitsspeicher und eine oder mehrere durch einen Computer lesbare Speichereinheiten und Programmanweisungen, die auf mindestens einer von der einen oder den mehreren Speichereinheiten zur Ausführung durch mindestens einen von dem einen oder den mehreren Prozessoren über mindestens einen von dem einen oder den mehreren Arbeitsspeichern gespeichert sind.
-
Figurenliste
-
Bestimmte neuartige Merkmale, die für die Erfindung als kennzeichnend erachtet werden, werden in den Ansprüchen im Anhang dargelegt. Die Erfindung selbst sowie ein bevorzugter Verwendungsmodus, weitere ihrer Ziele und Vorteile sind jedoch am besten unter Bezugnahme auf die folgende ausführliche Beschreibung der veranschaulichenden Ausführungsformen zu verstehen, wenn sie in Verbindung mit den begleitenden Zeichnungen gelesen wird, wobei:
- 1 ein Blockschaubild eines Netzwerks von Datenverarbeitungssystemen darstellt, in denen veranschaulichende Ausführungsformen umgesetzt werden können;
- 2 ein Blockschaubild eines Datenverarbeitungssystems darstellt, in dem veranschaulichende Ausführungsformen umgesetzt werden können;
- 3 ein Blockschaubild einer Beispielkonfiguration für eine Verbindungsverwaltung für mehrere Einheiten gemäß einer veranschaulichenden Ausführungsform darstellt;
- 4 ein Blockschaubild einer Beispielkonfiguration für eine Verbindungsverwaltung für mehrere Einheiten gemäß einer veranschaulichenden Ausführungsform darstellt;
- 5 ein Beispiel für eine Verbindungsverwaltung für mehrere Einheiten gemäß einer veranschaulichenden Ausführungsform darstellt;
- 6 ein fortgesetztes Beispiel für eine Verbindungsverwaltung für mehrere Einheiten gemäß einer veranschaulichenden Ausführungsform darstellt;
- 7 ein fortgesetztes Beispiel für eine Verbindungsverwaltung für mehrere Einheiten gemäß einer veranschaulichenden Ausführungsform darstellt;
- 8 ein fortgesetztes Beispiel für eine Verbindungsverwaltung für mehrere Einheiten gemäß einer veranschaulichenden Ausführungsform darstellt;
- 9 ein fortgesetztes Beispiel für eine Verbindungsverwaltung für mehrere Einheiten gemäß einer veranschaulichenden Ausführungsform darstellt;
- 10 ein fortgesetztes Beispiel für eine Verbindungsverwaltung für mehrere Einheiten gemäß einer veranschaulichenden Ausführungsform darstellt;
- 11 ein fortgesetztes Beispiel für eine Verbindungsverwaltung für mehrere Einheiten gemäß einer veranschaulichenden Ausführungsform darstellt;
- 12 einen Ablaufplan für einen Beispielprozess für eine Verbindungsverwaltung für mehrere Einheiten gemäß einer veranschaulichenden Ausführungsform darstellt;
- 13 eine Cloud-Computing-Umgebung gemäß einer Ausführungsform der vorliegenden Erfindung darstellt; und
- 14 Abstraktionsmodellschichten gemäß einer Ausführungsform der vorliegenden Erfindung darstellt.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Die veranschaulichenden Ausführungsformen würdigen die Tatsache, dass, wenn mehrere Einheiten ein Konto gemeinsam nutzen und eine Datenübertragungsanforderung empfangen wird, eine Option darin besteht, die Anforderung auf jeder verfügbaren Einheit zu erfüllen. Zum Beispiel könnte ein Benutzer sein bzw. ihr Smartphone, den Tablet-Computer, den Laptop-Computer und den Desktop-Computer im Büro mit Telefonie-Anwendungen, von denen alle dieselbe registrierte Telefonnummer oder eine andere eindeutige Benutzeridentifikation verwenden, für Sprachübertragungen und Textnachrichten konfigurieren. Wenn anschließend ein eingehender Anruf erfolgt, gibt jede Einheit, die gegenwärtig für Netzwerk-Datenübertragungen verfügbar ist, den eingehenden Anruf an. Wenn jedoch das Smartphone, der Tablet-Computer und der Laptop-Computer eines Benutzers sich alle zufällig nebeneinander befinden, geben alle drei den eingehenden Anruf an, was unnötig ist und lästig sein kann. Als weiteres Beispiel könnte ein Benutzer sein bzw. ihr Smartphone, den Tablet-Computer, den Laptop-Computer und die Smart Speaker im Wohnzimmer und Schlafzimmer so konfigurieren, dass sie ein gemeinsames Konto für Musik-Streaming verwenden, wenn sich aber Smartphone und Tablet-Computer gegenwärtig im Wohnzimmer zusammen mit dem Smart Speaker für das Wohnzimmer befinden, könnten alle drei die angeforderte Musik abspielen und Misstöne erzeugen.
-
Die veranschaulichenden Ausführungsformen würdigen die Tatsache, dass, wenn mehrere Einheiten ein Konto gemeinsam nutzen und eine Datenübertragungsanforderung empfangen wird, eine weitere Option darin besteht, die Anforderung durch Verwenden einer vordefinierten statischen Liste von Priorisierungsregeln zu erfüllen. Zum Beispiel könnte das Smartphone eines Benutzers in dem Fall eines eingehenden Anrufs immer den eingehenden Anruf angeben, wobei nur zu der nächsten Einheit in der Prioritätsliste gewechselt wird, wenn das Smartphone für das Datenübertragungsnetzwerk unerreichbar ist. Allerdings könnte es sein, dass die Einheit mit der höchsten Priorität nicht die Einheit ist, die für die gegenwärtige Situation am besten geeignet ist. Zum Beispiel könnte das Smartphone eines Benutzers, obwohl es die höchste Priorität hat, sich in einem Bereich mit schlechtem Empfang von Mobilfunkdaten befinden und nur mit 3G-Geschwindigkeit Daten übertragen, während andere verfügbare Einheiten, wie beispielsweise ein Tablet (durch Verwenden von WLAN) oder ein Laptop-Computer (durch Verwenden einer drahtgebundenen Netzwerkverbindung) zu höheren Geschwindigkeiten in der Lage und somit zu verbesserter Anrufqualität fähig wären. Außerdem wird ein Konfigurieren von mehreren Prioritätslisten, die auf mehrere Situationen anwendbar sind, schnell mühsam und kann sich unvorhergesehenen Situationen, einem Ändern von Einheiten- und Netzwerkfunktionen und sich weiterentwickelnden Präferenzen eines Benutzers immer noch nicht anpassen. Somit würdigen die veranschaulichenden Ausführungsformen die Tatsache, dass, wenn eine Datenübertragungsanforderung für ein Konto empfangen wird, ein nicht erfüllter Bedarf an einem automatischen Auswählen der geeignetsten Einheit zur Nutzung mit dem Konto und zum Aktualisieren der Bestimmung der Eignung auf Grundlage von wechselnden Bedingungen und Präferenzen besteht.
-
Die veranschaulichenden Ausführungsformen würdigen die Tatsache, dass die gegenwärtig verfügbaren Werkzeuge oder Lösungen nicht auf diese Bedürfnisse eingehen oder für diese Bedürfnisse angemessene Lösungen bereitstellen. Die veranschaulichenden Ausführungsformen, die zum Beschreiben der Erfindung verwendet wurden, gehen allgemein auf die oben beschriebenen Probleme und andere Probleme in Bezug auf Verbindungsverwaltung für mehrere Einheiten ein und lösen sie.
-
Eine Ausführungsform kann als eine Software-Anwendung umgesetzt werden. Die Anwendung, die eine Ausführungsform umsetzt, kann als eine Modifizierung eines vorhandenen Datenübertragungssystems, als eine separate Anwendung, die in Verbindung mit einem vorhandenen Datenübertragungssystem arbeitet, einer eigenständigen Anwendung oder einer Kombination davon konfiguriert werden.
-
Insbesondere stellen einige veranschaulichende Ausführungsformen ein Verfahren zum Empfangen einer Verbindungsanforderung für ein Konto, zum Bestimmen, durch Analysieren von Einheitennutzungsdaten für eine erste Einheit in der Gruppe von Einheiten, einer Verfügbarkeitsbewertung der ersten Einheit, zum Darstellen einer Verbindung auf Grundlage der Verfügbarkeitsbewertung der ersten Einheit und zum Verbinden einer sendenden Einheit und der ersten Einheit bereit.
-
Eine Ausführungsform ordnet eine oder mehrere Einheiten einem Benutzerkonto zu. Eine Ausführungsform empfängt eine Benutzereingabe, die eine Einheit einem Konto zuordnet. Eine weitere Ausführungsform ordnet eine Einheit automatisch einem Konto zu. Wenn zum Beispiel ein Benutzer eine Anwendung konfiguriert, um das Konto zu nutzen, könnte die Anwendung die Einheit, auf der die Anwendung ausgeführt wird, automatisch dem Konto zuordnen. Eine weitere Ausführungsform verwendet eine Einheitenerkennungstechnik, um eine Einheit einem Konto zuzuordnen, zum Beispiel durch Erkennen und Zuordnen jeder neuen Einheit, die sich einem bekannten WLAN- (WiFi-) oder anderen Datenübertragungsnetzwerk anschließt. (Wi-Fi ist eine eingetragene Marke von Wi-Fi-Alliance in den Vereinigten Staaten und anderen Ländern.)
-
Eine Ausführungsform konfiguriert und verwaltet eine Regelgruppe, die zum Bestimmen einer Verfügbarkeitsbewertung einer Einheit verwendet wird, die dem Konto zugehörig ist. Die Regelgruppe spezifiziert eine oder mehrere Komponenten, die zum Berechnen der Verfügbarkeitsbewertung verwendet wird bzw. werden, die Berechnung, die zum Kombinieren von Komponenten zu einer Verfügbarkeitsbewertung zu verwenden ist, und wie eine Bewertungskomponente aus Eingabedaten berechnet wird. In einer Ausführungsform kann ein Benutzer einen Teil oder die gesamte Regelgruppe manuell konfigurieren. Eine weitere Ausführungsform umfasst eine standardmäßige Regelgruppe, die ferner auf Grundlage einer Benutzereingabe angepasst wird, entweder während der Konfiguration der Einheit oder durch Lernen aus den Einheitenauswahlen eines Benutzers.
-
In einer Ausführungsform ist eine Komponente der Verfügbarkeitsbewertung einer Einheit, die dem Konto zugehörig ist, ein Verbindungsfaktor der Einheit. Eine Einheit, die fähig ist, Daten mit einer hohen Geschwindigkeit zu übertragen, stellt in der Regel eine höherwertigere Benutzererfahrung als eine andere Einheit mit denselben Ausgaben bereit, die Daten aber nur mit einer niedrigeren Geschwindigkeit übertragen kann. Zum Beispiel, wenn die Bildqualität bei Videokonferenzen höher und die Verzögerungszeit kürzer ist, wenn eine Einheit Daten mit den typischen Geschwindigkeiten einer drahtgebundenen Netzwerkverbindung im Vergleich mit den typischen Geschwindigkeiten einer 3G-Mobildatenverbindung überträgt. Somit hätte eine Einheit, die zu einer Verbindung mit höherer Geschwindigkeit fähig ist, einen höheren Verbindungsfaktor als den einer Einheit, die zu einer Verbindung mit einer vergleichsweise niedrigeren Geschwindigkeit fähig ist.
-
In einer Ausführungsform ist eine Komponente der Verfügbarkeitsbewertung einer Einheit, die dem Konto zugehörig ist, ein Fähigkeitsfaktor der Einheit in Bezug auf die Natur der Verbindungsanforderung. Zum Beispiel weist eine Einheit eines Smart Speakers in der Regel eine höherwertigere Tonwiedergabefähigkeit als ein Laptop-Computer auf. Wenn somit die Verbindungsanforderung ein Streamen von Musik umfasst, könnte eine Ausführungsform die Smart-Speaker-Einheit höher als den Laptop-Computer bewerten Als weiteres Beispiel, wenn die Verbindungsanforderung für einen Videoanruf bestimmt ist, könnte eine Ausführungsform zum Bereitstellen der bestmöglichen Videoqualität Einheiten proportional zu der Größe oder der Auflösung ihres Anzeigebildschirms bewerten.
-
In einer Ausführungsform ist eine Komponente der Verfügbarkeitsbewertung einer Einheit, die dem Konto zugehörig ist, ein Nutzungsfaktor der Einheit. Ein Nutzungsfaktor einer Einheit umfasst eine oder mehrere einer Zeit, seit der eine Einheit zuletzt verwendet wurde, eine Zeit, über die eine Einheit zuletzt verwendet wurde, eine durchschnittliche Nutzungszeit einer Einheit und andere nutzungsbezogene Daten einer Einheit. Je kürzer die Zeit ist, seit der eine Einheit zuletzt genutzt wurde, um so wahrscheinlicher ist es, dass die Einheit immer noch zur Nutzung zur Verfügung steht. Wenn ein Benutzer zum Beispiel eine Einheit gegenwärtig verwendet oder eine Einheit vor zwei Minuten zuletzt verwendet hat, befindet sich diese Einheit wahrscheinlich immer noch in der Nähe des Benutzers. Wenn ein Benutzer andererseits eine Einheit vor einer Stunde verwendet hat, ist es möglich, dass der Benutzer die Einheit an einem anderen Standort zurückgelassen hat. Bei Einheiten, die über längere Zeit verwendet werden, sowohl vor Kurzem als auch gemittelt über einen bestimmten Zeitraum, ist es ebenfalls wahrscheinlicher, dass sie gegenüber Einheiten bevorzugt werden, die nicht so lange genutzt wurden. Wenn somit eine erste Einheit länger als eine zweite Einheit genutzt wird, sollte ein Einheitennutzungsfaktor der ersten Einheit höher als ein Einheitennutzungsfaktor der zweiten Einheit sein.
-
In einer Ausführungsform ist eine Komponente der Verfügbarkeitsbewertung einer Einheit, die dem Konto zugehörig ist, ein Abstandsfaktor zwischen der Einheit und dem Benutzer des Kontos. Zum Beispiel ist der dauerhaft im Büro des Benutzers installierte Desktop-Computer eines Benutzers nicht verfügbar, wenn sich der Benutzer nicht im Büro aufhält. Eine Ausführungsform bestimmt den Standort einer Einheit durch Verwenden einer bereits verfügbaren Fähigkeit der Einheit. Zum Beispiel kann eine Einheit mit Ortungsfähigkeit, wie zum Beispiel ein Smartphone, ihren Standort mit einer Genauigkeit innerhalb einiger Meter melden. Als weiteres Beispiel könnte eine Einheit mit WLAN-Fähigkeit, wie zum Beispiel ein Tablet- oder Laptop-Computer, auf ein Netzwerk mit einem bestimmten Standort zugreifen, wie beispielsweise das Heim- oder Büro-Netzwerk des Benutzers. Als drittes Beispiel könnte auf eine Einheit mit einer drahtgebundenen Vernetzungsfähigkeit, wie beispielsweise ein Desktop-Computer, über ein Netzwerk durch einen Zugangspunkt mit einem bekannten Standort zugegriffen werden, wie zum Beispiel Raum XYZ des Bürogebäudes des Benutzers.
-
Eine Ausführungsform leitet den Standort eines Benutzers von einem Standort einer Einheit ab, die dem Konto zugehörig ist. Zum Beispiel könnte angenommen werden, dass ein Wearable, das derzeit getragen wird (wie durch Verwenden von einem oder mehreren Einheiten-Sensoren bestimmt), von dem Benutzer des Kontos getragen wird. Als weiteres Beispiel entfernen sich Benutzer selten weit von ihren Smartphones, sodass angenommen werden kann, dass der Standort eines Benutzers derselbe ist wie der Standort des Smartphones oder sich innerhalb einer Schwellenwertgröße des Standorts des Smartphones befindet.
-
Eine weitere Ausführungsform bestimmt den Standort eines Benutzers direkt durch Verwenden von Sensordaten einer Einheit, die dem Konto oder einer anderen Einheit zugehörig ist. Zum Beispiel können Zugangskontrolldaten für das Bürogebäude des Benutzers angeben, dass der Benutzer das Gebäude heute früher betreten und das Gebäude noch nicht verlassen hat. Daher schließt eine Ausführungsform daraus, dass sich dieser Benutzer eher im Büro als an einem anderen Standort befindet. Wenn als weiteres Beispiel das Heim eines Benutzers einen Thermostaten mit einer Anwesenheits-Erkennungsfunktion und der Fähigkeit aufweist, über ein Datenübertragungsnetzwerk Daten auszutauschen, könnte eine Ausführungsform diese Daten zum Bestimmen verwenden, ob der Benutzer zuhause ist. Einige Einheiten stellen präzisere Daten zum Benutzerstandort bereit als andere. Zum Beispiel könnten Zugangskontrolldaten nur verwendbar sein, um zu bestimmen, ob sich ein Benutzer in dem Gebäude aufhält, Thermostatdaten könnten verwendbar sein, um zu bestimmen, ob der Benutzer zuhause ist (oder auf welchem Stockwerk, wenn mehrere solcher Thermostaten vorhanden sind), während ein Videoüberwachungssystem oder ein Funkfrequenzidentifizierungs- (RFID) System verwendbar wäre, um zu bestimmen (nach Benutzer-Zustimmung), in welchem Raum sich ein Benutzer befindet oder in welchem Abstand von einer bestimmten RFID-Sensor-Abfrageeinrichtung er sich aufhält. Präzise Benutzerstandortdaten sind jedoch nicht immer notwendig. Wenn ein Benutzer zum Beispiel nicht im Büro ist, ist der Computer in seinem bzw. ihrem Büro unabhängig vom Aufenthaltsort des Benutzers nicht verfügbar. Wenn daher ein Abstand zwischen der Einheit und dem Benutzer des Kontos über einem vorbestimmten Schwellenwert liegt, setzt eine Ausführungsform den Abstandsfaktor auf einen gegenwärtig maximalen Wert, der die Nichtverfügbarkeit der Einheit angibt.
-
In einer Ausführungsform ist eine Komponente der Verfügbarkeitsbewertung einer Einheit, die dem Konto zugehörig ist, ein Benutzerpräferenzfaktor. Zum Beispiel kann ein Benutzer lieber ein Smartphone für ein bestimmtes Konto oder einen bestimmten Typ von Datenübertragungsanforderung nutzen, selbst wenn eine andere Einheit durch Verwenden eines anderen Faktors eine höhere Bewertung aufweisen könnte. In einer Ausführungsform stellt der Benutzer Präferenzinformationen über eine Benutzerschnittstelle bereit. Eine weitere Ausführungsform lernt Präferenzinformationen aus den Einheitenauswahlen eines Benutzers und passt den Präferenzfaktor entsprechend an. Wenn ein Benutzer zum Beispiel immer das Smartphone wählt, wenn er vor die Wahl zwischen einer Nutzung von Smartphone oder Tablet gestellt wird, aktualisiert diese Ausführungsform den Benutzerpräferenzfaktor, um das Smartphone höher als das Tablet zu bewerten.
-
Eine Ausführungsform empfängt eine Verbindungsanforderung für ein Konto. Die Datenübertragungsanforderung ist eine Anforderung zum Herstellen einer Datenübertragung zwischen einer sendenden Einheit und einer Einheit, die dem Konto zugehörig ist. Einige nicht einschränkende Beispiele für eine Datenübertragungsanforderung sind eine Angabe eines eingehenden Sprach- oder Video-Anrufs und eine Antwort auf eine Anforderung des Benutzers, auf einem entfernt angeordneten Computersystem gespeicherte Musik abzuspielen.
-
Eine Ausführungsform analysiert Einheitendaten für eine Einheit, die dem Konto zugehörig ist, um eine oder mehrere Verfügbarkeitsbewertungs-Komponenten zu berechnen, die in der Regelgruppe angegeben ist bzw. sind. Insbesondere berechnet eine Ausführungsform einen Verbindungsfaktor der Einheit. Eine weitere Ausführungsform berechnet einen Fähigkeitsfaktor der Einheit, der sich auf die Natur der Verbindungsanforderung bezieht. Eine weitere Ausführungsform berechnet einen Einheitennutzungsfaktor der Einheit. Eine weitere Ausführungsform berechnet einen Abstandsfaktor zwischen der Einheit und dem Benutzer des Kontos durch Bestimmen des Standorts einer Einheit und Ableiten des Standorts eines Benutzers von einem Standort einer Einheit, die dem Konto zugehörig ist, oder durch ein direktes Bestimmen des Standorts eines Benutzers durch Verwenden von Sensordaten einer Einheit, die dem Konto oder einer anderen Einheit zugehörig ist.
-
Aus den Komponenten der Verfügbarkeitsbewertung, die in der Regelgruppe spezifiziert sind, bestimmt eine Ausführungsform eine Verfügbarkeitsbewertung einer Einheit, die dem Konto zugehörig ist. Eine Ausführungsform berechnet periodisch eine Verfügbarkeitsbewertung in Reaktion auf eine Datenübertragungsanforderung. Eine weitere Ausführungsform berechnet periodisch eine Verfügbarkeitsbewertung für eine oder mehrere Einheiten, die einem Konto zugehörig ist bzw. sind, sodass Verfügbarkeitsbewertungen bereit sind, wenn eine Datenübertragungsanforderung empfangen wird. Eine weitere Ausführungsform sammelt periodisch die zum Berechnen der Verfügbarkeitsbewertung einer Einheit verwendeten Daten, wartet mit der Berechnung der Verfügbarkeitsbewertung aber ab, bis eine Datenübertragungsanforderung empfangen wird.
-
Eine Ausführungsform wählt eine oder mehrere Einheiten auf Grundlage der Verfügbarkeitsbewertung der Einheit, stellt die ausgewählte Einheit für den Benutzer des Kontos für eine Verbindung dar und verbindet die sendende Einheit und die ausgewählte Einheit, wenn der Benutzer die Verbindung akzeptiert, um die Datenübertragungsanforderung zu erfüllen. Eine Ausführungsform ordnet Einheiten dem Rang nach auf Grundlage ihrer Verfügbarkeitsbewertungen und wählt die Einheit mit der höchsten Verfügbarkeitsbewertung.
-
Eine weitere Ausführungsform ordnet Einheiten dem Rang nach auf Grundlage ihrer Verfügbarkeitsbewertungen, bestimmt, dass mehrere Einheiten die höchsten Verfügbarkeitsbewertungen und Verfügbarkeitsbewertungen innerhalb einer Schwellenwertdifferenz voneinander aufweisen, wählt zwei oder mehrere der mehreren Einheiten, stellt die ausgewählten Einheiten für den Benutzer des Kontos für eine Verbindung dar und verbindet die sendende Einheit und die ausgewählte Einheit, wenn der Benutzer die Verbindung akzeptiert, um die Datenübertragungsanforderung zu erfüllen. Auf Grundlage der Auswahl des Benutzers und der Komponenten der Verfügbarkeitsbewertungen der Einheiten passt die Ausführungsform einen Benutzerpräferenzfaktor an und verwendet den angepassten Benutzerpräferenzfaktor zum Berechnen von einer oder mehreren Verfügbarkeitsbewertungen für eine zukünftige Datenübertragungsanforderung. Wenn zum Beispiel das Smartphone und das Tablet eines Benutzers die beiden höchsten Verfügbarkeitsbewertungen haben, und die Bewertungen innerhalb einer Schwellenwertdifferenz voneinander liegen, stellt eine Ausführungsform beide Einheiten für eine Verbindung dar, und wenn der Benutzer die Verbindung durch Verwenden des Smartphones akzeptiert, aktualisiert die Ausführungsform den Benutzerpräferenzfaktor, um zukünftig das Smartphone höher als das Tablet zu bewerten.
-
Die hierin beschriebene Art und Weise einer Verbindungsverwaltung für mehrere Einheiten steht in den gegenwärtig verfügbaren Verfahren des technologischen Arbeitsgebiets nicht zur Verfügung, die zur Verwaltung von Einheiten bei Datenübertragungen gehören. Ein Verfahren einer Ausführungsform, das hierin beschrieben wird, weist bei einer Umsetzung zum Ausführen auf einer Einheit oder einem Datenverarbeitungssystem wesentliche Fortschritte der Funktionalität dieser Einheit oder dieses Datenverarbeitungssystem beim Empfangen einer Verbindungsanforderung für ein Konto, beim Bestimmen, durch Analysieren von Einheitennutzungsdaten für eine erste Einheit in der Gruppe von Einheiten, einer Verfügbarkeitsbewertung der ersten Einheit, beim Darstellen der ersten Einheit für eine Verbindung auf Grundlage der Verfügbarkeitsbewertung der ersten Einheit und beim Verbinden einer sendender Einheit und der ersten Einheit auf.
-
Die veranschaulichenden Ausführungsformen werden nur zu Beispielzwecken in Bezug auf bestimmte Typen von Konten, Datenübertragungsanforderungen, Einheitenfähigkeiten, Sensordaten, Einheitennutzungsdaten, Verfügbarkeitsbewertungs-Komponenten, Benutzerpräferenzen, Schwellenwerten, Antworten, Rangfolgen, Anpassungen, Sensoren, Messungen, Einheiten, Datenverarbeitungssystemen, Umgebungen, Komponenten und Anwendungen beschrieben. Alle spezifischen Erscheinungsformen von diesen und anderen ähnlichen Artefakten sind nicht als Einschränkung der Erfindung aufzufassen. Jede geeignete Erscheinungsform von diesen und anderen ähnlichen Artefakten kann innerhalb des Schutzumfangs der veranschaulichenden Ausführungsformen ausgewählt werden.
-
Ferner können die veranschaulichenden Ausführungsformen in Bezug auf jeden Typ von Daten, Datenquelle oder Zugang zu einer Datenquelle über ein Datennetzwerk umgesetzt werden. Jeder Typ einer Datenspeichereinheit kann die Daten für eine Ausführungsform der Erfindung innerhalb des Schutzumfangs der Erfindung bereitstellen, entweder lokal auf einem Datenverarbeitungssystem oder über ein Datennetzwerk. In Fällen, in denen eine Ausführungsform durch Verwenden einer mobilen Einheit beschrieben wird, kann jeder Typ einer Datenspeichereinheit, der für ein Verwenden mit der mobilen Einheit geeignet ist, die Daten für eine derartige Ausführungsform innerhalb des Schutzumfang der veranschaulichenden Ausführungsformen entweder lokal auf der mobilen Einheit oder über ein Datennetzwerk bereitstellen.
-
Die veranschaulichenden Ausführungsformen werden durch Verwenden von spezifischem Code, Auslegungen, Architekturen, Protokollen, Layouts, Schemaplänen und Werkzeugen nur zu Beispielzwecken beschrieben und sind nicht auf die veranschaulichenden Ausführungsformen beschränkt. Ferner werden die veranschaulichenden Ausführungsformen in einigen Fällen durch ein Verwenden von bestimmter Software, von Werkzeugen und Datenverarbeitungsumgebungen nur zu Beispielzwecken zur Verdeutlichung der Beschreibung beschrieben. Die veranschaulichenden Ausführungsformen können in Verbindung mit anderen vergleichbaren oder ähnlich ausgelegten Strukturen, Systemen, Anwendungen oder Architekturen verwendet werden. Zum Beispiel können andere vergleichbare mobile Einheiten, Strukturen, Systeme, Anwendungen oder Architekturen dafür in Verbindung mit einer derartigen Ausführungsform der Erfindung innerhalb des Schutzumfangs der Erfindung verwendet werden. Eine veranschaulichende Ausführungsform kann in Hardware, Software, Firmware oder einer Kombination davon umgesetzt werden.
-
Die Beispiele in dieser Offenbarung werden nur zur Verdeutlichung der Beschreibung verwendet und schränken die veranschaulichenden Ausführungsformen nicht ein. Zusätzliche Daten, Operationen, Aktionen, Aufgaben, Aktivitäten und Manipulationen sind von dieser Offenbarung ausgehend denkbar, und dieselben werden innerhalb des Schutzumfang der veranschaulichenden Ausführungsformen in Betracht gezogen.
-
Alle hierin aufgelisteten Vorteile sind nur Beispiele und sind nicht als Einschränkung auf die veranschaulichenden Ausführungsformen aufzufassen. Weitere oder verschiedene Vorteile können durch spezifische veranschaulichende Ausführungsformen verwirklicht werden. Ferner kann eine bestimmte veranschaulichende Ausführungsform einige, alle oder gar keine der oben aufgeführten Vorteile aufweisen.
-
Obwohl diese Offenbarung eine ausführliche Beschreibung von Cloud Computing enthält, sollte klar sein, dass die 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 Dienstbereitstellungsmodell 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 Dienstes schnell bereitgestellt und freigegeben werden können. Dieses Cloud-Modell kann mindestens fünf Eigenschaften, mindestens drei Dienstmodelle und mindestens vier Nutzungsmodelle umfassen.
-
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 des Dienstes 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). Der Ressourcen-Verbrauch kann überwacht, gesteuert und gemeldet werden, wodurch sowohl für den Anbieter als auch für den Nutzer des verwendeten Dienstes Transparenz geschaffen wird.
-
Die Dienstmodelle sind wie folgt:
- Software as a Service (SaaS): Die für den Nutzer bereitgestellte Funktion besteht darin, die in einer Cloud-Infrastruktur ausgeführten Anwendungen des Anbieters zu verwenden. Die Anwendungen sind über eine Thin-Client-Schnittstelle wie einen 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).
-
Die Nutzungsmodelle sind wie folgt:
- 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 der Geschäftsräume 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 enthält.
-
Unter Bezugnahme auf die Figuren und insbesondere unter Bezugnahme auf 1 und 2 sind diese Figuren Beispieldarstellungen von Datenverarbeitungsumgebungen, in denen veranschaulichende Ausführungsformen umgesetzt werden können. 1 und 2 sind nur Beispiele und durch sie soll keinerlei Einschränkung hinsichtlich der Umgebungen festgestellt oder impliziert werden, in denen verschiedene Ausführungsformen umgesetzt werden können. Eine spezielle Umsetzung kann zu vielen Modifizierungen an den dargestellten Umgebungen auf Grundlage der folgenden Beschreibung führen.
-
1 stellt ein Blockschaubild eines Netzwerks von Datenverarbeitungssystemen dar, in denen veranschaulichende Ausführungsformen umgesetzt werden können. Eine Datenverarbeitungsumgebung 100 ist ein Netzwerk von Computern, in denen die veranschaulichenden Ausführungsformen umgesetzt werden können. Die Datenverarbeitungsumgebung 100 umfasst ein Netzwerk 102. Das Netzwerk 102 ist das Medium, das zum Bereitstellen von Datenübertragungsverbindungen zwischen verschiedenen Einheiten und Computern verwendet wird, die in der Datenverarbeitungsumgebung 100 miteinander verbunden sind. Das Netzwerk 102 kann Verbindungen enthalten, wie beispielsweise drahtgebundene, drahtlose Datenübertragungsverbindungen oder Lichtwellenleiterkabel.
-
Clients oder Server sind nur beispielhafte Rollen von bestimmten Datenverarbeitungssystemen, die mit dem Netzwerk 102 verbunden sind, und sind nicht so aufzufassen, dass sie andere Konfigurationen oder Rollen für diese Datenverarbeitungssysteme ausschließen. Ein Server 104 und ein Server 106 sind zusammen mit einer Speichereinheit 108 mit dem Netzwerk 102 verbunden. Software-Anwendungen können auf jedem Computer in der Datenverarbeitungsumgebung 100 ausgeführt werden. Clients 110, 112 und 114 sind ebenfalls mit dem Netzwerk 102 verbunden. Ein Datenverarbeitungssystem wie zum Beispiel der Server 104 oder 106 oder der Client 110, 112 oder 114 kann Daten enthalten und kann Software-Anwendungen oder Software-Werkzeuge aufweisen, die darauf ausgeführt werden
-
Nur als Beispiel und ohne irgendeine Einschränkung einer derartigen Architektur implizieren zu wollen, stellt 1 bestimmte Komponenten dar, die in einer beispielhaften Umsetzung einer Ausführungsform verwendbar sind. Zum Beispiel werden die Server 104 und 106 und die Clients 110, 112, 114 nur zu Beispielzwecken als Server und Clients dargestellt und nicht, um eine Einschränkung auf eine Client-Server-Architektur zu implizieren. Als weiteres Beispiel kann eine Ausführungsform über mehrere Datenverarbeitungssysteme und ein Datennetzwerk, wie gezeigt, verteilt werden, wogegen eine weitere Ausführungsform auf einem einzelnen Datenverarbeitungssystem innerhalb des Schutzumfangs der veranschaulichenden Ausführungsformen umgesetzt werden kann. Die Datenverarbeitungssysteme 104, 106, 110, 112 und 114 stellen auch Beispielknoten in einem Cluster, Partitionen und anderen Konfigurationen dar, die für ein Umsetzen einer Ausführungsform geeignet sind.
-
Eine Einheit 132 ist ein Beispiel für eine hierin beschriebene Einheit. Zum Beispiel kann die Einheit 132 die Form eines Smartphones, eines Tablet-Computers, eines Laptop-Computers, eines Clients 110 in einer ortsfesten oder tragbaren Form, eine tragbare Datenverarbeitungseinheit oder jede andere geeignete Einheit aufweisen. Jede Software-Anwendung, die als in einem weiteren Datenverarbeitungssystem in 1 ausgeführt beschrieben wird, kann konfiguriert werden, um in der Einheit 132 auf ähnliche Weise ausgeführt zu werden. Alle in einem weiteren Datenverarbeitungssystem in 1 gespeicherten oder erzeugten Daten oder Informationen können konfiguriert werden, um in der Einheit 132 auf ähnliche Weise gespeichert oder erzeugt zu werden.
-
Die Anwendung 105 setzt eine hierin beschriebene Ausführungsform um. Die Anwendung 105 wird in jedem der Server 104 und 106, den Clients 110, 112 und 114 und der Einheit 132 ausgeführt. Die Anwendung 105 ist auch konfigurierbar, um Daten aus einer oder mehreren Instanzen der Einheit 132 zu sammeln, um eine oder mehrere Instanzen der Einheit 132 in Reaktion auf eine Datenübertragungsanforderung zur Präsentation für einen Benutzer auszuwählen.
-
Die Server 104 und 106, die Speichereinheit 108 und die Clients 110, 112 und 114 und die Einheit 132 können mit dem Netzwerk 102 durch ein Verwenden von drahtgebundenen Verbindungen, drahtlosen Datenübertragungsprotokollen oder einer anderen geeigneten Datenkonnektivität verbunden werden. Die Clients 110, 112 und 114 können zum Beispiel PCs oder Netzwerk-Computer sein.
-
In dem dargestellten Beispiel kann der Server 104 Daten wie zum Beispiel Boot-Dateien, Betriebssystemabbildungen und Anwendungen für die Clients 110, 112 und 114 bereitstellen. Die Clients 110, 112 und 114 können in diesem Beispiel Clients für den Server 104 sein. Die Clients 110, 112 und 114 oder eine Kombination davon können ihre eigenen Daten, Boot-Dateien, Betriebssystemabbilder und Anwendungen umfassen. Die Datenverarbeitungsumgebung 100 kann zusätzliche Server, Clients und andere nicht gezeigte Einheiten enthalten.
-
In dem dargestellten Beispiel kann die Datenverarbeitungsumgebung 100 das Internet sein. Das Netzwerk 102 kann eine Sammlung von Netzwerken und Gateways darstellen, die das Transmission Control Protocol/Internet Protocol (TCP/IP) oder andere Protokolle verwenden, um miteinander Daten auszutauschen. Das Kernstück des Internets ist ein Backbone von Datenübertragungsverbindungen zwischen Hauptknoten oder Host-Computern, die Tausende von gewerblichen, behördlichen, schulischen und anderen Computersystemen umfassen, die Daten und Nachrichten weiterleiten. Selbstverständlich kann die Datenverarbeitungsumgebung 100 auch als eine Anzahl von verschiedenen Typen von Netzwerken umgesetzt werden, wie zum Beispiel ein Intranet, ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetzwerk (WAN). 1 ist als Beispiel und nicht als Architektureinschränkung für die verschiedenen veranschaulichenden Ausführungsformen gedacht.
-
Neben anderen Verwendungen kann die Datenverarbeitungsumgebung 100 zum Umsetzen einer Client-Server-Umgebung verwendet werden, in der die veranschaulichenden Ausführungsformen umgesetzt werden können. Eine Client-Server-Umgebung ermöglicht, dass Software-Anwendungen und Daten über ein Netzwerk verteilt werden können, sodass eine Anwendung durch ein Verwenden der Interaktivität zwischen einem Client-Datenverarbeitungssystem und einem Server-Datenverarbeitungssystem funktioniert. Die Datenverarbeitungsumgebung 100 kann auch eine dienstorientierte Architektur verwenden, in der interoperable Software-Komponenten, die über ein Netzwerk verteilt sind, als kohärente Geschäftsanwendungen zusammengepackt sind. Die Datenverarbeitungsumgebung 100 kann auch die Form einer Cloud annehmen und ein Cloud-Computing-Modell einer Dienstbereitstellung verwenden, um einen problemlosen bedarfsgesteuerten Netzwerkzugang zu einem gemeinsam genutzten Pool von konfigurierbaren Datenverarbeitungsressourcen zu ermöglichen (z.B. Netzwerke, Netzwerkbandbreite, Server, Verarbeitung, Arbeitsspeicher, Speicher, Anwendungen, virtuelle Maschinen und Dienste), die mit minimalem Verwaltungsaufwand bzw. minimaler Interaktion mit einem Anbieter des Dienstes schnell bereitgestellt und freigegeben werden können.
-
Unter Bezugnahme auf 2 stellt diese Figur ein Blockschaubild eines Datenverarbeitungssystems dar, in dem veranschaulichende Ausführungsformen umgesetzt werden können. Ein Datenverarbeitungssystem 200 ist ein Beispiel für einen Computer, wie zum Beispiel die Server 104 und 106 oder die Clients 110, 112 und 114 in 1 oder einen anderen Typ von Einheit, in dem sich durch einen Computer verwendbarer Programmcode oder Anweisungen für die veranschaulichenden Ausführungsformen befinden kann bzw. können, der bzw. die die Prozesse umsetzt bzw. umsetzen.
-
Das Datenverarbeitungssystem 200 ist auch repräsentativ für ein Datenverarbeitungssystem oder eine Konfiguration darin, wie zum Beispiel das Datenverarbeitungssystem 132 in 1, in dem sich durch einen Computer verwendbarer Programmcode oder Anweisungen befinden kann bzw. können, der bzw. die die Prozesse der veranschaulichenden Ausführungsformen umsetzt bzw. umsetzen. Das Datenverarbeitungssystem 200 wird zu Beispielzwecken nur als ein Computer beschrieben, ohne darauf beschränkt zu sein. Umsetzungen in der Form von anderen Einheiten, wie beispielsweise die Einheit 132 in 1, können das Datenverarbeitungssystem 200 zum Beispiel durch Hinzufügen einer Berührungsschnittstelle modifizieren und sogar bestimmte dargestellte Komponenten aus dem Datenverarbeitungssystem 200 eliminieren, ohne von der allgemeinen Beschreibung der Operationen und Funktionen des hierin beschriebenen Datenverarbeitungssystems 200 abzuweichen.
-
In dem dargestellten Beispiel verwendet das Datenverarbeitungssystem 200 eine Hub-Architektur mit North-Bridge und Speicher-Controller-Hub (NB/MCH) 202 und South-Bridge und Eingabe/Ausgabe- (E/A) Controller-Hub (SB/ICH) 204. Eine Verarbeitungseinheit 206, ein Hauptarbeitsspeicher 208 und ein Grafikprozessor 210 sind mit North-Bridge und dem Controller-Hub (NB/MCH) 202 verbunden. Die Verarbeitungseinheit 206 kann einen oder mehrere Prozessoren enthalten und kann durch Verwenden von einem oder mehreren heterogenen Prozessorsystemen umgesetzt werden. Die Verarbeitungseinheit 206 kann ein Mehrkern-Prozessor sein. Der Grafikprozessor 210 kann in bestimmten Umsetzungen mit dem NB/MCH 202 über einen beschleunigten Grafikanschluss (AGP - Accelerated Graphics Port) verbunden werden.
-
In dem dargestellten Beispiel ist ein Adapter 212 des lokalen Netzwerks (LAN) mit South-Bridge und E/A-Controller-Hub (SB/ICH 204) verbunden. Ein Audio-Adapter 216, ein Tastatur- und Maus-Adapter 220, ein Modem, ein Nur-Lese-Speicher (ROM) 224, ein Universal-Serial-Bus (USB) und andere Anschlüsse 232 und PCI/PCIe-Einheiten 234 sind mit South-Bridge und einem E/A-Controller-Hub 204 über einen Bus 238 verbunden. Ein Festplattenlaufwerk oder eine Solid-State-Einheit (SSD) 226 und ein CD-ROM 230 sind mit South-Bridge und E/A-Controller-Hub 204 durch einen Bus 240 verbunden. Zu den PCI/PCIe-Einheiten 234 können beispielsweise Ethernet-Adapter, Add-in-Karten und PC-Karten für Notebook-Computer gehören. PCI verwendet einen Karten-Bus-Controller, PCle hingegen nicht. Der ROM 224 kann beispielsweise ein binäres Flash-Eingabe/Ausgabe-System (BIOS) sein. Das Festplattenlaufwerk 226 und der CD-ROM 230 können zum Beispiel eine Integrated Drive Electronics- (IDE) oder Serial Advanced Technology Attachment- (SATA) Schnittstelle oder Varianten wie beispielsweise External SATA (eSATA) und Mikro-SATA (mSATA) verwenden. Eine Super I/O- (SIO) Einheit 236 kann mit South-Bridge und dem E/A-Controller-Hub (SB/ICH) 204 über einen Bus 238 verbunden werden.
-
Arbeitsspeicher, wie zum Beispiel der Hauptarbeitsspeicher 208, der ROM 224 oder ein Flash-Speicher (nicht gezeigt) sind einige Beispiele für durch einen Computer verwendbare Speichereinheiten. Das Festplattenlaufwerk oder die Solid-State-Einheit (SSD) 226, CD-ROM 230 oder andere ähnlich verwendbare Einheiten sind einige Beispiele für durch einen Computer verwendbare Speichereinheiten, die ein durch einen Computer verwendbares Speichermedium umfassen.
-
Auf der Verarbeitungseinheit 206 wird ein Betriebssystem ausgeführt. Das Betriebssystem koordiniert verschiedene Komponenten und stellt deren Steuerung in dem Datenverarbeitungssystem 200 in 2 bereit. Das Betriebssystem kann ein im Handel erhältliches Betriebssystem für jeden Typ einer Datenverarbeitungsplattform sein, das Serversysteme, PCs und mobile Einheiten umfasst, aber nicht darauf beschränkt ist. Ein objektorientiertes Programmiersystem oder ein anderer Typ eines Programmiersystems kann zusammen mit dem Betriebssystem ausgeführt werden und stellt Aufrufe an das Betriebssystem aus Programmen oder Anwendungen bereit, die auf dem Datenverarbeitungssystem 200 ausgeführt werden.
-
Anweisungen für das Betriebssystem, das objektorientierte Programmiersystem und Anwendungen oder Programme, wie beispielsweise die Anwendung 105 in 1, befinden sich auf Speichereinheiten, wie beispielsweise in der Form eines Codes 226A auf einem Festplattenlaufwerk 226, und können in mindestens einen von einem oder mehreren Arbeitsspeichern, wie beispielsweise einen der Hauptarbeitsspeicher 208, zur Ausführung durch die Verarbeitungseinheit 206 geladen werden. Die Prozesse der veranschaulichenden Ausführungsformen können von der Verarbeitungseinheit 206 durch Verwenden von durch den Computer umgesetzten Anweisungen ausgeführt werden, die sich in einem Arbeitsspeicher wie zum Beispiel dem Hauptarbeitsspeicher 208, dem ROM 224 oder in einer oder mehreren Peripherieeinheiten 226 und 230 befinden können.
-
Ferner kann in einem Fall der Code 226A über ein Netzwerk 201A von einem entfernt angeordneten System 201B heruntergeladen werden, auf dem ein ähnlicher Code 201C auf einer Speichereinheit 201D gespeichert ist. In einem weiteren Fall kann der Code 226A über das Netzwerk 201A auf das entfernt angeordnete System 201B heruntergeladen werden, auf dem der ähnliche Code 201C auf einer Speichereinheit 201D gespeichert ist.
-
Die Hardware in 1 bis 2 kann je nach Umsetzung verschieden sein. Weitere interne Hardware- oder Peripherie-Einheiten wie Flash-Speicher, gleichwertiger nicht flüchtiger Arbeitsspeicher oder optische Plattenlaufwerke und dergleichen können zusätzlich zu oder anstelle der Hardware verwendet werden, die in 1 bis 2 dargestellt ist. Außerdem können die Prozesse der veranschaulichenden Ausführungsformen auf ein Mehrfachprozessor-Datenverarbeitungssystem angewendet werden.
-
In einigen veranschaulichenden Beispielen kann das Datenverarbeitungssystem 200 ein Personal Digital Assistant (PDA) sein, der im Allgemeinen mit einem Flash-Arbeitsspeicher konfiguriert ist, um nicht flüchtigen Arbeitsspeicher zum Speichern von Betriebssystemdateien und/oder vom Benutzer generierten Daten bereitzustellen. Ein Bussystem kann aus einem oder mehreren Bussen bestehen, wie zum Beispiel einem Systembus, einem E/A-Bus und einem PCI-Bus. Selbstverständlich kann das Bussystem unter Verwendung jedes Typs von Kommunikationsstruktur oder -architektur umgesetzt werden, die eine Übertragung von Daten zwischen verschiedenen Komponenten oder Einheiten bereitstellen, die mit der Struktur oder Architektur verbunden sind.
-
Eine Datenübertragungseinheit kann eine oder mehrere Einheiten umfassen, die zum Übertragen und Empfangen von Daten verwendet wird bzw. werden, wie zum Beispiel ein Modem oder ein Netzwerkadapter. Ein Arbeitsspeicher kann zum Beispiel der Hauptarbeitsspeicher 208 oder ein Cachespeicher wie beispielsweise der Cachespeicher sein, der in North-Bridge und dem Arbeitsspeicher-Controller-Hub 202 zu finden ist. Eine Verarbeitungseinheit kann einen oder mehrere Prozessoren oder CPUs umfassen.
-
Die dargestellten Beispiele in 1 bis 2 und die oben beschriebenen Beispiele sind so aufzufassen, dass sie keinerlei Einschränkungen der Architektur implizieren. Zum Beispiel kann das Datenverarbeitungssystem 200 zusätzlich zum Aufweisen einer Form als mobile oder Wearable-Einheit auch ein Tablet-Computer, ein Laptop-Computer oder eine Telefoneinheit sein.
-
In Fällen, in denen ein Computer- oder Datenverarbeitungssystem als eine virtuelle Maschine, eine virtuelle Einheit oder eine virtuelle Komponente beschrieben wird, arbeiten die virtuelle Maschine, die virtuelle Einheit oder die virtuelle Komponente in der Art und Weise des Datenverarbeitungssystems 200 durch Verwenden einer virtualisierten Erscheinungsform von einigen oder allen Komponenten, die in dem Datenverarbeitungssystem dargestellt sind. Zum Beispiel zeigt sich die Verarbeitungseinheit 206 in einer virtuellen Maschine, einer virtuellen Einheit oder einer virtuellen Komponente als eine virtualisierte Instanz von allen oder einigen Hardware-Verarbeitungseinheiten, die in einem Host-Datenverarbeitungssystem verfügbar sind, der Hauptarbeitsspeicher 208 zeigt sich als eine virtualisierte Instanz des gesamten oder eines Teils des Hauptarbeitsspeichers 208, der in dem Host-Datenverarbeitungssystem verfügbar ist, und das Festplattenlaufwerk 226 zeigt sich als eine virtualisierte Instanz des gesamten oder eines Teils des Festplattenlaufwerks 226, das in dem Host-Datenverarbeitungssystem verfügbar ist. Das Host-Datenverarbeitungssystem wird in solchen Fällen durch das Datenverarbeitungssystem 200 dargestellt.
-
Unter Bezugnahme auf 3 stellt diese Figur ein Blockschaubild einer Beispielkonfiguration für eine Verbindungsverwaltung für mehrere Einheiten gemäß einer veranschaulichenden Ausführungsform dar. Eine Anwendung 300 ist ein Beispiel der Anwendung 105 in 1 und wird in jedem der Server 104 und 106, den Clients 110, 112 und 114 und der Einheit 132 in 1 ausgeführt.
-
Ein Konfigurationsmodul 310 ordnet eine oder mehrere Einheiten einem Benutzerkonto zu. Des Weiteren konfiguriert das Konfigurationsmodul 310 eine Regelgruppe, die zum Bestimmen einer Verfügbarkeitsbewertung einer Einheit verwendet wird, die dem Konto zugehörig ist. Die Regelgruppe spezifiziert eine oder mehrere Komponenten, die zum Berechnen der Verfügbarkeitsbewertung verwendet wird bzw. werden, die Berechnung, die zum Kombinieren von Komponenten zu einer Verfügbarkeitsbewertung zu verwenden ist, und wie eine Bewertungskomponente aus Eingabedaten berechnet wird.
-
Die Anwendung 300 empfängt eine Benutzereingabe, wie beispielsweise Einheitenauswahlen des Benutzers und vom Benutzer bereitgestellte Kontokonfigurationen. Die Anwendung 300 empfängt auch Einheitendaten und Sensordaten, mit denen Einheitenverfügbarkeitsbewertungen berechnet werden. Die Anwendung 300 empfängt auch eine Verbindungsanforderung für ein Konto.
-
Ein Einheitenzustandsmodul 320 sammelt und analysiert Einheitendaten, die zum Berechnen von einer oder mehreren Verfügbarkeitsbewertungs-Komponenten verwendet werden, die in der Regelgruppe angegeben sind. Umsetzungen des Moduls 320 sammeln Daten, die zum Berechnen von einem oder mehreren eines Verbindungsfaktors, Einheitenfähigkeitsfaktors, Einheitennutzungsfaktors und des Standorts einer Einheit verwendet werden. Ein Benutzerzustandsmodul 330 sammelt und analysiert Daten, die zum Ableiten des Standorts eines Benutzers von einem Standort einer Einheit verwendet werden, die dem Konto zugehörig ist, oder um den Standort eines Benutzers direkt durch Verwenden von Sensordaten einer Einheit zu bestimmen, die dem Konto oder einer anderen Einheit zugehörig ist.
-
Ein Verfügbarkeitsbewertungsmodul 340 berechnet Verfügbarkeitsbewertungs-Komponenten, die in der Regelgruppe angegeben sind, wendet die in der Regelgruppe angegebenen Verfügbarkeitsbewertungs-Komponenten an und bestimmt eine Verfügbarkeitsbewertung einer Einheit, die dem Konto zugehörig ist. Eine Umsetzung des Moduls 340 berechnet periodisch eine Verfügbarkeitsbewertung in Reaktion auf eine Datenübertragungsanforderung. Eine weitere Umsetzung des Moduls 340 berechnet periodisch eine Verfügbarkeitsbewertung für eine oder mehrere Einheiten, die einem Konto zugehörig sind, sodass Verfügbarkeitsbewertungen bereit sind, wenn eine Datenübertragungsanforderung empfangen wird. Eine weitere Umsetzung des Moduls 340 sammelt periodisch die zum Berechnen einer Verfügbarkeitsbewertung der Einheit verwendeten Daten, wartet mit der Berechnung der Verfügbarkeitsbewertung aber ab, bis eine Datenübertragungsanforderung empfangen wird.
-
Ein Einheitenverbindungsmodul 350 wählt eine oder mehrere Einheiten auf Grundlage der Verfügbarkeitsbewertung der Einheit, stellt die ausgewählte Einheit für den Benutzer des Kontos für eine Verbindung dar, und verbindet die sendende Einheit und die ausgewählte Einheit, wenn der Benutzer die Verbindung akzeptiert, um die Datenübertragungsanforderung zu erfüllen. Eine Umsetzung des Moduls 350 ordnet Einheiten dem Rang nach auf Grundlage ihrer Verfügbarkeitsbewertungen und wählt die Einheit mit der höchsten Verfügbarkeitsbewertung. Eine weitere Umsetzung des Moduls 350 ordnet Einheiten dem Rang nach auf Grundlage ihrer Verfügbarkeitsbewertungen, bestimmt, dass mehrere Einheiten die höchsten Verfügbarkeitsbewertungen und Verfügbarkeitsbewertungen innerhalb einer Schwellenwertdifferenz voneinander aufweisen, wählt zwei oder mehrere von den mehreren Einheiten, stellt die ausgewählten Einheiten für den Benutzer des Kontos für eine Verbindung dar, und verbindet die sendende Einheit und die ausgewählte Einheit, wenn der Benutzer die Verbindung akzeptiert, um die Datenübertragungsanforderung zu erfüllen.
-
Auf Grundlage der Auswahl des Benutzers und der Komponenten der Verfügbarkeitsbewertungen der Einheiten passt ein Regelanpassungsmodul 360 einen Benutzerpräferenzfaktor an. Das Verfügbarkeitsbewertungs-Modul 340 verwendet den angepassten Benutzerpräferenzfaktor zum Berechnen von einer oder mehreren Einheitenverfügbarkeitsbewertungen für eine zukünftige Datenübertragungsanforderung.
-
Unter Bezugnahme auf 4 stellt diese Figur ein Blockschaubild einer Beispielkonfiguration für eine Verbindungsverwaltung für mehrere Einheiten gemäß einer veranschaulichenden Ausführungsform dar. Insbesondere stellt 4 mehr Details des Konfigurationsmoduls 310 in 3 dar.
-
Ein Einheitenregistrierungsmodul 410 ordnet eine oder mehrere Einheiten einem Benutzerkonto zu. Eine Umsetzung des Moduls 410 empfängt eine Benutzereingabe, die eine Einheit einem Konto zuordnet. Eine weitere Umsetzung des Moduls 410 ordnet eine Einheit automatisch einem Konto zu. Wenn zum Beispiel ein Benutzer eine Anwendung konfiguriert, um das Konto zu nutzen, könnte die Anwendung die Einheit, auf der die Anwendung ausgeführt wird, automatisch dem Konto zuordnen. Eine weitere Umsetzung des Moduls 410 verwendet eine Einheitenerkennungstechnik, um eine Einheit einem Konto zuzuordnen, zum Beispiel durch Erkennen und Zuordnen jeder neuen Einheit, die sich einem bekannten WLAN- oder einem anderen Datenübertragungsnetzwerk anschließt.
-
Ein Regelmodul 420 konfiguriert und verwaltet eine Regelgruppe, die zum Bestimmen einer Verfügbarkeitsbewertung einer Einheit verwendet wird, die dem Konto zugehörig ist. Die Regelgruppe spezifiziert eine oder mehrere Komponenten, die zum Berechnen der Verfügbarkeitsbewertung verwendet wird bzw. werden, die Berechnung, die zum Kombinieren von Komponenten zu einer Verfügbarkeitsbewertung zu verwenden ist, und wie eine Bewertungskomponente aus Eingabedaten berechnet wird. In einer Umsetzung des Moduls 420 kann ein Benutzer einen Teil oder die gesamte Regelgruppe manuell konfigurieren. Eine weitere Umsetzung des Moduls 420 umfasst eine standardmäßige Regelgruppe, die ferner auf Grundlage einer Benutzereingabe angepasst wird, entweder während der Konfiguration der Einheit oder durch Lernen aus den Einheiten-Auswahlen eines Benutzers.
-
In Umsetzungen des Moduls 420 umfassen Komponenten der Verfügbarkeitsbewertung einer Einheit, die dem Konto zugehörig ist, einen Verbindungsfaktor der Einheit, einen Einheitenfähigkeitsfaktor in Bezug auf die Natur der Verbindungsanforderung, einen Einheitennutzungsfaktor der Einheit, einen Benutzerpräferenzfaktor und einen Abstandsfaktor zwischen der Einheit und dem Benutzer des Kontos. Der Abstandsfaktor wird durch Verwenden einer bereits verfügbaren Fähigkeit der Einheit bestimmt, indem ein Standort des Benutzers von einem Standort einer Einheit abgeleitet wird, die dem Konto zugehörig ist, oder indem der Standort eines Benutzers direkt durch Verwenden von Sensordaten einer Einheit bestimmt wird, die dem Konto oder einer anderen Einheit zugehörig ist.
-
Unter Bezugnahme auf 5 stellt diese Figur ein Beispiel für eine Verbindungsverwaltung für mehrere Einheiten gemäß einer veranschaulichenden Ausführungsform dar. Das Beispiel kann durch Verwenden der Anwendung 300 in 3 ausgeführt werden. Das Einheitenregistrierungsmodul 410 ist dasselbe wie das Einheitenregistrierungsmodul 410 in 4.
-
Eine Einheit 502 ist ein Smartphone, das eine Stylus-Eingabefähigkeit umfasst. Eine Einheit 504 ist ein anderes Smartphone ohne eine Stylus-Eingabefähigkeit. Eine Einheit 506 ist eine Tablet-Einheit. Eine Einheit 508 ist ein Laptop-Computer, und eine Einheit 510 ist ein Desktop-Computer. Das Einheitenregistrierungsmodul 410 ordnet die Einheiten 502, 504, 506, 508 und 510 einem Benutzerkonto 520 zu.
-
Unter Bezugnahme auf 6 stellt diese Figur ein fortgesetztes Beispiel für eine Verbindungsverwaltung für mehrere Einheiten gemäß einer veranschaulichenden Ausführungsform dar. Das Einheitenzustandsmodul 320 ist dasselbe wie das Einheitenzustandsmodul 320 in 3. Die Einheiten 502, 504, 506, 508 und 510 sind dieselben wie die Einheiten 502, 504, 506, 508 und 510 in 5.
-
Da alle Einheiten 502, 504, 506, 508 und 510 demselben Konto zugehörig sind, überwacht das Einheitenzustandsmodul 320 jede davon und sammelt die Ergebnisse in Einheitennutzungsdaten 610. Wie dargestellt, befinden sich die Einheiten 502, 506 und 508 an einem Standort 602 (z.B. die Wohnung eines Benutzers), während sich die Einheiten 504 und 510 an einem Standort 604 befinden (z.B. das Büro eines Benutzers).
-
Unter Bezugnahme auf 7 stellt diese Figur ein fortgesetztes Beispiel für eine Verbindungsverwaltung für mehrere Einheiten gemäß einer veranschaulichenden Ausführungsform dar. Das Benutzerzustandsmodul 330 ist dasselbe wie das Benutzerzustandsmodul 330 in 3. Die Einheiten 502, 504, 506, 508 und 510 sind dieselben wie die Einheiten 502, 504, 506, 508 und 510 in 5. Die Standorte 602 und 604 sind dieselben wie die Standorte 602 und 604 in 6.
-
Ein Benutzer 710 ist am Standort 602 0 Meter von der Einheit 502, 1 Meter von der Einheit 506 und 10 Meter von der Einheit 508 entfernt. Die Einheiten 504 und 510 befinden sich am Standort 604. Das Benutzerzustandsmodul 330 sammelt und analysiert Daten, die zum Ableiten des Standorts eines Benutzers von einem Standort einer Einheit verwendet werden, die dem Konto zugehörig ist, oder um den Standort eines Benutzers direkt durch Verwenden von Sensordaten einer Einheit zu bestimmen, die dem Konto oder einer anderen Einheit zugehörig ist. Das Ergebnis wird in Benutzerzustandsdaten 720 tabellarisch angeordnet. Zu bemerken ist, da sich der Benutzer 710 am Standort 602 mehr als einen Schwellenwertabstand von den Einheiten am Standort 604 entfernt befindet, dass das Modul 330 nicht versucht hat, einen genauen Abstand zwischen dem Benutzer 710 und den Einheiten am Standort 604 zu bestimmen.
-
Unter Bezugnahme auf 8 stellt diese Figur ein fortgesetztes Beispiel für eine Verbindungsverwaltung für mehrere Einheiten gemäß einer veranschaulichenden Ausführungsform dar. Das Verfügbarkeitsbewertungsmodul 340 ist dasselbe wie das Verfügbarkeitsbewertungsmodul 340 in 3. Die Einheiten 502, 504, 506, 508 und 510 sind dieselben wie die Einheiten 502, 504, 506, 508 und 510 in 5. Die Standorte 602 und 604 und die Einheitenverwendungsdaten 610 sind dieselben wie die Standorte 602 und 604 und die Einheitenverwendungsdaten 610 in 6. Die Benutzerzustandsdaten 720 sind dieselben wie die Benutzerzustandsdaten 720 in 7.
-
Wie dargestellt, verwendet das Verfügbarkeitsbewertungsmodul 340 die Einheitennutzungsdaten 610 und die Benutzerzustandsdaten 720 zum Berechnen von Verfügbarkeitsbewertungsdaten 810. Komponentenbewertungen für jeden Faktor werden auf einer gemeinsamen Skala von 0 bis 100 in Klammern unter den entsprechenden Daten dargestellt. Somit verwendet die Einheit 502 4G für ihre Datenverbindung, was zu einer Verbindungsfaktorbewertung von 40 führt. Die Einheit 502 ist 0 Meter von dem Benutzer 710 entfernt, was zu einer Abstandsfaktorbewertung von 100 zwischen der Einheit und dem Benutzer des Kontos führt. Der letzte Zugriff des Benutzers 710 auf die Einheit 502 erfolgte vor 5 Minuten für eine Bewertung von 95, und die durchschnittliche Nutzungszeit des Benutzers für diese Einheit ist 100 Minuten für eine Bewertung von 100. Das Modul 340 verwendet eine Regelgruppe, die einfach die Bewertungskomponenten insgesamt mittelt, was für die Einheit 502 zu einer Verfügbarkeitsbewertung von 83,75 führt. Die Verfügbarkeitsbewertungen für die Einheiten 506 und 508 wurden auf ähnliche Weise berechnet. Die Verfügbarkeitsbewertungen für die Einheiten 504 und 510 wurden nicht berechnet, da diese Einheiten sich in einem Abstand von mehr als dem Schwellenwert von dem Benutzer 710 befinden und somit nicht verfügbar sind. Anzumerken ist, dass die Beispieldaten, entsprechende Verfügbarkeitsbewertungen und zum Berechnen von Beispielbewertungen verwendete Regeln nur Beispiele sind und keine bestimmte erforderliche Bewertung oder Bewertungsberechnung implizieren sollen.
-
Unter Bezugnahme auf 9 stellt diese Figur ein fortgesetztes Beispiel für eine Verbindungsverwaltung für mehrere Einheiten gemäß einer veranschaulichenden Ausführungsform dar. Das Einheitenverbindungsmodul 350 ist dasselbe wie das Einheitenverbindungsmodul 350 in 3. Die Einheit 502 ist dieselbe wie die Einheit 502 in 5. Der Standort 602 ist derselbe wie der Standort in 6. Die Verfügbarkeitsbewertungsdaten 810 sind dieselben wie die Verfügbarkeitsbewertungsdaten 810 in 8.
-
Da die Einheit 502 hier die höchste Bewertung in Verfügbarkeitsbewertungsdaten 810 hatte, erzeugt das Einheitenverbindungsmodul 350 eine Präsentation 910, in der die Einheit 502 für den Benutzer 710 dargestellt wird, um auf ein Verbindungsanforderung zu antworten.
-
Unter Bezugnahme auf 10 stellt diese Figur ein fortgesetztes Beispiel für eine Verbindungsverwaltung für mehrere Einheiten gemäß einer veranschaulichenden Ausführungsform dar. Das Einheitenverbindungsmodul 350 ist dasselbe wie das Einheitenverbindungsmodul 350 in 3. Die Einheiten 502 und 506 sind dieselben wie die Einheiten 502 und 506 in 5.
-
Die Einheit 502 ist hier 0 Meter von dem Benutzer 710 entfernt, und die Einheit 506 ist einen Meter von dem Benutzer 710 entfernt. Die Einheiten 502 und 506 und der Benutzer 710 befinden sich alle an einem Standort 1002. Daher hat das Verfügbarkeitsbewertungsmodul 340 Verfügbarkeitsbewertungsdaten 1010 berechnet, in denen die Einheiten 502 und 506 Verfügbarkeitsbewertungen haben, die innerhalb eines vorbestimmten Schwellenwertabstands zueinander liegen. Somit erzeugt das Einheitenverbindungsmodul 350 eine Präsentation 1020, in der beide Einheiten 502 und 506 für den Benutzer 710 dargestellt werden, um auf eine Verbindungsanforderung zu antworten.
-
Unter Bezugnahme auf 11 stellt diese Figur ein fortgesetztes Beispiel für eine Verbindungsverwaltung für mehrere Einheiten gemäß einer veranschaulichenden Ausführungsform dar. Das Regelanpassungsmodul 360 ist dasselbe wie das Regelanpassungsmodul 360 in 3. Die Einheiten 502 und 506 sind dieselben wie die Einheiten 502 und 506 in 5.
-
Hier wurden beide Einheiten 502 und 506 dargestellt. In einer Benutzerauswahl 1102 wählt der Benutzer 710 die Einheit 506. Somit generiert das Regelanpassungsmodul 360 eine Regelanpassung 1110, wodurch angegeben wird, wenn die Einheiten 502 und 506 Verfügbarkeitsbewertungen haben, die innerhalb eines vorbestimmten Schwellenwertabstands zueinander liegen, dass die Einheit 506 ausgewählt werden sollte, um auf eine zukünftige Datenübertragungsanforderung zu antworten.
-
Unter Bezugnahme auf 12 stellt diese Figur einen Ablaufplan für einen Beispielprozess für eine Verbindungsverwaltung für mehrere Einheiten gemäß einer veranschaulichenden Ausführungsform dar. Ein Prozess 1200 kann in der Anwendung 300 in 3 umgesetzt werden.
-
In einem Block 1202 ordnet die Anwendung eine Gruppe von Einheiten einem Konto zu. In einem Block 1204 konfiguriert die Anwendung eine Regelgruppe, die zum Bestimmen einer Verfügbarkeitsbewertung einer Einheit verwendet wird, die dem Konto zugehörig ist. In einem Block 1206 empfängt die Anwendung eine Verbindungsanforderung zum Herstellen einer Datenübertragung zwischen einer sendenden Einheit und einer Einheit, die dem Konto zugehörig ist. In einem Block 1208 analysiert die Anwendung EinheitenNutzungsdaten, um eine Verfügbarkeitsbewertung für eine oder mehrere Einheiten in der Gruppe zu bestimmen. In einem Block 1210 bestimmt die Anwendung, ob mehrere Einheitenbewertungen innerhalb eines Schwellenwerts zueinander liegen. Falls nicht (Pfad „NEIN“ von Block 1210), stellt die Anwendung in einem Block 1212 die Einheit mit der höchsten Bewertung für eine Verbindung dar, anschließend verbindet die Anwendung in einem Block 1214 die dargestellte Einheit mit der sendenden Einheit, danach endet die Anwendung. Andernfalls (Pfad „NEIN“ von Block 1210) stellt die Anwendung in einem Block 1216 mehrere Anwendungen für eine Verbindung dar, in einem Block 1218 verwendet die Anwendung eine Einheitenauswahl durch einen Benutzer, um einen Benutzerpräferenzfaktor in der Bestimmung der Verfügbarkeitsbewertung anzupassen, und in Block 1210 verbindet die Anwendung die ausgewählte Einheit mit der sendenden Einheit. Danach endet die Anwendung.
-
Unter folgender Bezugnahme auf 13 wird eine veranschaulichende Cloud-Computing-Umgebung 50 dargestellt. Wie gezeigt, enthält die Cloud-Computing-Umgebung 50 einen oder mehrere Cloud-Computing-Knoten 10, 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 Cloud, 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 gezeigten Typen von Datenverarbeitungseinheiten 54A bis N nur zur Veranschaulichung dienen sollen, und dass die Cloud-Computing-Knoten 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 14 wird ein Satz von funktionalen Abstraktionsschichten gezeigt, die von der Cloud-Computing-Umgebung 50 (13) bereitgestellt werden. Dabei sollte von Anfang an klar sein, dass die dargestellten 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 für Hardware-Komponenten zählen: Mainframes 61; Server auf Grundlage einer RISC- (Reduced Instruction Set Computer) Architektur 62; Server 63; Blade-Server 64; Speichereinheiten 65; und Netzwerke und vernetzte Komponenten 66. In einigen Ausführungsformen enthalten Software-Komponenten Software für Netzwerkanwendungsserver 67 und Datenbank-Software 68.
-
Eine Virtualisierungsschicht 70 stellt eine Abstraktionsschicht bereit, von der aus die folgenden beispielhaften virtuellen Entitäten bereitgestellt werden können: virtuelle Server 71; virtueller Speicher 72; virtuelle Netzwerke 73, einschließlich virtuelle private Netzwerke; virtuelle Anwendungen und Betriebssysteme 74; und virtuelle Clients 75.
-
In einem Beispiel kann eine Verwaltungsschicht 80 die im Folgenden beschriebenen Funktionen bereitstellen. Eine Ressourcenbereitstellung 81 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 82 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 umfassen. 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 83 stellt den Zugang zur Cloud-Computing-Umgebung für Nutzer und Systemadministratoren bereit. Eine Service-Level- (Dienstgüte) Verwaltung 84 sorgt für Zuweisung und Verwaltung von Cloud-Computing-Ressourcen, sodass erforderliche Service-Levels eingehalten werden. Planung und Vertragserfüllung des Service Level Agreement (SLA) (Dienstgütevereinbarung) 85 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 Arbeitslastenschicht 90 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 91; Software-Entwicklung und Lebenszyklusverwaltung 92; Bereitstellung von virtuellen Schulungen 93; Datenanalyseverarbeitung 94; Transaktionsverarbeitung 95; und Anwendungsauswahl auf Grundlage einer Bewertung eines kumulativen Schwachstellenrisikos 96.
-
Somit wird ein durch einen Computer umgesetztes Verfahren, ein System oder eine Vorrichtung und ein Computerprogrammprodukt in den veranschaulichenden Ausführungsformen für eine Verbindungsverwaltung für mehrere Einheiten und andere zugehörige Merkmale, Funktionen oder Operationen bereitgestellt. In Fällen, in denen eine Ausführungsform oder ein Teil davon in Bezug auf einen Einheitentyp beschrieben wird, wird das durch einen Computer umgesetzte Verfahren, das System oder die Vorrichtung und das Computerprogrammprodukt oder ein Teil davon angepasst oder konfiguriert, um mit einer geeigneten oder vergleichbaren Erscheinungsform dieses Einheitentyps verwendet zu werden.
-
In Fällen, in denen eine Ausführungsform als in einer Anwendung umgesetzt beschrieben wird, wird die Bereitstellung der Anwendung in einem Software-as-a-Service-(SaaS)-Modell innerhalb des Schutzumfangs der veranschaulichenden Ausführungsformen in Betracht gezogen. In einem SaaS-Modell wird die Fähigkeit der Anwendung zum Umsetzen einer Ausführungsform für einen Benutzer durch Ausführen der Anwendung in einer Cloud-Infrastruktur bereitgestellt. Der Benutzer kann durch Verwenden einer Vielfalt von Client-Einheiten über eine Thin-Client-Schnittstelle, beispielsweise ein Web-Browser (z.B. eMail auf Web-Grundlage) oder andere leichte Client-Anwendungen auf die Anwendung zugreifen. Der Benutzer verwaltet oder steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter Netzwerke, Server, Betriebssysteme oder der Speicher der Cloud-Infrastruktur. In einigen Fällen kann der Benutzer nicht einmal die Funktionen der SaaS-Anwendung verwalten oder steuern. In einigen anderen Fällen kann die SaaS-Umsetzung der Anwendung eine mögliche Ausnahme von eingeschränkten benutzerspezifischen Einstellungen der Anwendungskonfiguration gestatten.
-
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 zum Ausführen 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 von spezifischeren Beispielen 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 zu 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 für einen Prozessor eines Computers oder eine andere programmierbare Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, sodass die über den Prozessor des Computers bzw. eine andere programmierbare Datenverarbeitungsvorrichtung ausgeführten Anweisungen Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegebenen Funktionen/Schritte erstellen. 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 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 als ein Schritt durchgeführt werden, der gleichzeitig, im Wesentlichen gleichzeitig, in einer teilweise oder vollständig zeitlich überlappenden Weise ausgeführt wird, 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.