-
HINTERGRUND DER ERFINDUNG
-
Gebiet der Erfindung
-
Die vorliegende Erfindung bezieht sich auf Verwalten von gemeinsam genutzten Dokumenten und insbesondere auf Verwalten von gemeinsam genutzten Dokumenten und Speichern von Unternehmens-Dokumenten der Gruppenzusammenarbeit.
-
Beschreibung des Hintergrunds
-
Soziale Netzwerke wie beispielsweise Facebook, Twitter, Myspace sind allgegenwärtig geworden. Unternehmen, besonders große Unternehmen wie große multinationale Gesellschaften passen eine geschlossene (interne) soziale Vernetzung an verschiedene Kontexte in dem betreffenden Unternehmen an. Durch diese sozialen Netzwerke des Unternehmens können Mitarbeiter-Beziehungen in verschiedenen Sparten oder Gruppen des Unternehmens und über diese hinweg, z.B. über Abteilungs-, Standort- und/oder Ländergrenzen, verbessert werden. Durch Verwenden eines geschlossenen sozialen Netzwerks können sich Mitarbeiter des Unternehmens mit anderen Arbeitnehmern verbinden und zum Zusammenarbeiten und zum Teilen von Ideen, internen Dokumenten und Informationen zusammenschließen. Benutzer eines sozialen Netzwerks (z.B. Management und Angestellte des Unternehmens) können für jedes Projekt Gruppen aus Projektteam-Teilnehmern bilden, um untereinander eine Projekt-Kommunikation zu ermöglichen. Benutzer können gleichfalls weitere Ad-hoc-Communitys bilden, auf die Arbeit bezogen oder von gemeinsamem Interesse, z.B. Sport-Teams des Unternehmens oder andere außerbetriebliche Aktivitäten.
-
In diesen Gruppen können Gruppenteilnehmer Aktivitätslisten erzeugen, Dokumente hochladen/herunterladen und gemeinsam nutzen. Bei einem typischen Projekt können Teilnehmer gemeinsam genutzte Dokumente häufig aktualisieren. Ein mehrfaches Verbreiten von Aktualisierungen ist für eine bessere organisationsweite Zusammenarbeit und Koordination wesentlich. Üblicherweise verlieren alte Versionen jedoch bei jeder Aktualisierung ihre Bedeutung. Benutzer löschen jedoch selten alte Versionen, wenn neue Versionen verfügbar werden. Des Weiteren kann gelegentlich die Notwendigkeit bestehen, dass auf letzte Aktualisierungen Bezug genommen wird oder diese sogar zurückverfolgt und rückgängig gemacht werden. Es kann somit der Wunsch bestehen, eine bestimmte Anzahl alter Versionen aufzubewahren. Je nach Anzahl der Mitarbeiter an einem speziellen Dokument kann jedoch der Aufwand zum Aufrechterhalten mehrerer unterschiedlicher Versionen desselben Dokuments auf mehreren unterschiedlichen Benutzermaschinen übermäßig hoch sein. Zwar könnte ein Sammeln aller unterschiedlichen Versionen in einem zweckgebundenen zentralen Speicher diesen Aufwand vermindern, das erfordert jedoch außerdem einen zweckgebundenen Speicher, der ausreichend flexibel ist, um sich an eine wachsende/expandierende Datenmenge anzupassen. Aus Kostengründen verbietet es sich jedoch leider, einen ausreichend großen zweckgebundenen Lokal- oder Cloud-Speicher bereitzustellen, um Verfügbarkeit und Zuverlässigkeit zu garantieren. Ein öffentlicher Cloud-Speicher kann beispielsweise zum Speichern der Daten ausreichend sein, bei öffentlichen Clouds besteht jedoch das Problem des Datenschutzes.
-
Des Weiteren handelt es sich bei Unternehmen um flexible Einheiten, wobei Angestellte und Verantwortlichkeiten der Angestellten flexibel sind oder sich verändern. Veränderungen bei Angestellten und zugehörigen Verantwortlichkeiten ändern häufig die Mitgliedschaft an Unternehmensgruppen. Für vorhandene Projekte sind beispielsweise Neuanstellungen oder Versetzungen erforderlich. Außerdem können Angestellte die Projekte im Laufe der Zeit verlassen, wenn beispielsweise jemand kündigt, entlassen, versetzt oder befördert wird. Dieser Angestelltenwechsel verändert die Projektteilnehmer und Teilnehmerbeziehungen und folglich die Gruppen-Teilnehmerschaft im sozialen Netzwerk. Außerdem kann sich ein typisches Projekt aufgrund seines dynamischen Wesens oder wegen einer stark schwankenden Aktivität ändern, wobei sich Perioden mit sehr aktiven Spitzen mit Ruheperioden mit geringer Aktivität abwechseln. Wenn ein Projekt abgewickelt wird und endet, kann die zugehörige Community Interessen und Verantwortlichkeiten beibehalten. Bei typischen Speichersystemen, die Speicherkapazitäten für Unternehmensgruppen bereitstellen, sind durchgreifende Maßnahmen und daraus folgend ein erheblicher Aufwand (z.B. Kosten) erforderlich, um dieser Flexibilität Rechnung zu tragen.
-
Es besteht somit ein Bedarf zum Vermindern des Aufwands zum Speichern von Unternehmens-Kollaborationsdaten und zum Konsolidieren der Handhabung von Kollaborationsdaten; und insbesondere zum Vermindern des Umfangs von gesammelten redundanten Daten sowie veralteter Daten, die gesammelt und in unternehmensweiten Kollaborationsprojekten gespeichert werden.
-
KURZDARSTELLUNG DER ERFINDUNG
-
Ein Merkmal der Erfindung besteht in der Selbstverwaltung eines Peer-to-Peer-Speichers.
-
Ein weiteres Merkmal der Erfindung besteht in der Selbstverwaltung eines Peer-to-Peer-Speichers für ein soziales Netzwerk des Unternehmens.
-
Ein nochmals weiteres Merkmal der Erfindung besteht in dem Peer-to-Peer-Speichersystem eines sozialen Netzwerks des Unternehmens.
-
Ein nochmals weiteres Merkmal der Erfindung besteht in der Selbstverwaltung eines Cloud-gestützten Peer-to-Peer-Speichers eines sozialen Netzwerks des Unternehmens.
-
Die vorliegende Erfindung bezieht sich auf ein Peer-to-Peer-Speichersystem, ein Verfahren und Programmprodukt zum Verwalten eines Peer-to-Peer-Speichers in einem Unternehmens-Netzwerk. Peers verwenden vernetzte Einheiten zum Anmelden bei einer sozialen Plattform eines Unternehmens mit einer eindeutigen Kennung (ID), die einen entsprechenden Benutzer des Unternehmens-Netzwerks kennzeichnet. Benutzer können Teilnehmer von Unternehmens-Netzwerkgruppen sein. Wenn ein Gruppenteilnehmer-Peer eine Kopie einer Datei anfordert, wobei die Datei der Gruppe zugehörig ist, ermittelt die vernetzte Einheit, ob andere Teilnehmer Replikate der Datei gespeichert haben. Wenn Replikate bei anderen Teilnehmern gespeichert sind, empfängt die vernetzte Einheit ein Replikat von diesen. Andernfalls empfängt die vernetzte Einheit eine Kopie von der sozialen Plattform des Unternehmens, und diese Kopie wird bei einem der Gruppenteilnehmer gespeichert.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
Die vorhergehenden und weitere Aufgaben, Aspekte und Vorteile werden aus der nachfolgenden genauen Beschreibung einer bevorzugten Ausführungsform der Erfindung unter Bezugnahme auf die Zeichnungen besser verstanden, in denen:
-
1 einen Cloud-Datenverarbeitungsknoten gemäß einer Ausführungsform der vorliegenden Erfindung darstellt;
-
2 eine Cloud-Datenverarbeitungsumgebung gemäß einer Ausführungsform der vorliegenden Erfindung darstellt;
-
3 Schichten eines Abstraktionsmodells gemäß einer Ausführungsform der vorliegenden Erfindung darstellt;
-
4 ein Beispiel eines Peer-to-Peer-Speichersystems eines Unternehmens-Netzwerks gemäß einer Ausführungsform der vorliegenden Erfindung zeigt;
-
5 ein Beispiel einer sozial vernetzten Peer-Einheit eines Unternehmens in einem bevorzugten Peer-to-Peer-(z.B. Worker-to-Worker-)Netzwerk-Speichersystem zeigt;
-
6 ein Beispiel einer Peer-Einheit zeigt, die einer Menge von Benutzern empfiehlt, Dateien in einer Peer-Einheit in Reaktion auf eine neue Anforderung zum Hochladen einer Datei zu speichern;
-
7 ein Beispiel von Peer-Einheiten zeigt, die lokal gespeicherte Replikate verwalten.
-
BESCHREIBUNG BEVORZUGTER AUSFÜHRUNGSFORMEN
-
Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt handeln. Das Computerprogrammprodukt kann ein computerlesbares Speichermedium (oder Medien) enthalten, auf dem sich computerlesbare Programmbefehle befinden, um einen Prozessor zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
-
Bei dem computerlesbaren Speichermedium kann es sich um eine materielle Einheit handeln, die Befehle zum Verwenden durch eine Befehlsausführungseinheit halten und speichern kann. Bei dem computerlesbaren Speichermedium kann es sich beispielsweise um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiter-Speichereinheit oder jede geeignete Kombination der Vorhergehenden handeln, ist jedoch nicht darauf beschränkt. Eine nicht erschöpfende Liste von spezielleren Beispielen des computerlesbaren Speichermediums enthält Folgendes: eine tragbare Computerdiskette, eine Festplatte, einen Direktzugriffsspeicher (RAM), einen Festwertspeicher (ROM), einen löschbaren programmierbaren Festwertspeicher (EPROM oder Flash-Speicher), einen statischen Direktzugriffsspeicher (SRAM), einen tragbaren Compactdisk-Festwertspeicher (CD-ROM), eine digitale Versatile-Disk (DVD), einen Speicherstick, ein Floppy Disk, eine mechanisch codierte Einheit wie beispielsweise Lochkarten oder erhabene Strukturen in einer Nut, in denen Befehle aufgezeichnet sind, oder jede geeignete Kombination des Vorhergehenden. Ein hier verwendetes computerlesbares Speichermedium sollte nicht so ausgelegt werden, dass es sich dabei per se um flüchtige Signale handelt wie beispielsweise Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder andere Übertragungsmedien ausbreiten (z.B. Lichtimpulse, die durch ein Lichtwellenleiterkabel geleitet werden) oder elektrische Signal, die durch eine Leitung übertragen werden.
-
Computerlesbare Programmbefehle, die hier beschrieben werden, können von einem computerlesbaren Speichermedium zu entsprechenden Datenverarbeitungs/Verarbeitungs-Einheiten oder über ein Netzwerk, z.B. das Internet, ein Lokalbereichsnetz, ein Weitverkehrsnetz und/oder ein drahtloses Netzwerk zu einem externen Computer oder einer externen Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupfer-Übertragungskabel, Lichtwellenleiter, drahtlose Übertragungen, Router, Firewalls, Switches, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerk-Adapterkarte oder eine Netzwerk-Schnittstelle in jeder Datenverarbeitungs/Verarbeitungs-Einheit empfängt computerlesbare Programmbefehle von dem Netzwerk und leitet die computerlesbaren Programmbefehle zum Speichern in einem computerlesbaren Speichermedium in der entsprechenden Datenverarbeitungs/Verarbeitungs-Einheit weiter.
-
Bei computerlesbaren Programmbefehlen zum Ausführen von Operationen der vorliegenden Erfindung kann es sich um Assembler-Befehle, Befehle mit Befehlssatz-Architektur (ISA), Maschinenbefehle, maschinenabhängige Befehle, Mikrocode, Firmware-Befehle, Zustandseinstellungsdaten oder Quellencode bzw. Objektcode handeln, der in jeder Kombination aus einer oder mehreren Program-miersprachen geschrieben ist, darunter eine objektorientierte Programmiersprache wie Smalltalk, C++ oder dergleichen und herkömmliche prozedurale Programmiersprachen wie etwa die Programmiersprache "C" oder ähnliche Programmiersprachen. Die computerlesbaren Programmbefehle können nur auf dem Computer eines Benutzers, teilweise auf dem Computer eines Benutzers, als ein eigenständiges Software-Paket, teilweise auf dem Computer eines Benutzers und teilweise auf einem fernen Computer oder nur auf dem fernen Computer oder Server ausgeführt werden. In dem zuletzt genannten Szenario kann der ferne Computer mit dem Computer des Benutzers durch jeden Netzwerktyp verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann zu einem externen Computer (z.B. über das Internet unter Verwendung eines Internet-Dienstanbieters) hergestellt werden. Bei einigen Ausführungsformen können elektronische Schaltungsanordnungen, darunter beispielsweise eine programmierbare logische Schaltungsanordnung, vor Ort programmierbare Gate-Arrays (FPGA) oder programmierbare Logik-Arrays (PLA) die computerlesbaren Programmbefehle ausführen, indem Zustandsinformationen der computerlesbaren Programmbefehle genutzt werden, um die elektronische Schaltungsanordnung zu personalisieren, um Aspekte der vorliegenden Erfindung auszuführen.
-
Aspekte der vorliegenden Erfindung werden hier unter Bezugnahme auf Ablaufplan-Darstellungen und/oder Blockschaltbilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es ist klar, dass jeder Block der Ablaufplan-Darstellungen und/oder Blockschaltbilder und Kombinationen von Blöcken in den Ablaufplan-Darstellungen und/oder Blockschaltbildern durch computerlesbare Programmbefehle umgesetzt werden können.
-
Diese computerlesbaren Programmbefehle können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu bilden, so dass Befehle, die über den Prozessor des Computers oder der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, Mittel zum Umsetzen der Funktionen/Wirkungen, die in dem Block oder den Blöcken des Ablaufplans und/oder Blockschaltbilds spezifiziert sind, erzeugen. Diese computerlesbaren Programmbefehle können außerdem in einem computerlesbaren Speichermedium gespeichert sein, das einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten anweisen kann, in einer bestimmten Weise zu funktionieren, so dass das computerlesbare Speichermedium mit darin gespeicherten Befehlen einen Herstellungsgegenstand aufweisen, der Befehle enthält, die Aspekte der Funktion/Wirkung umsetzen, die in dem Block oder den Blöcken des Ablaufplans und/oder Blockschaltbilds spezifiziert sind.
-
Die computerlesbaren Programmbefehle können außerdem in einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um eine Reihe von Operationsschritten zu bewirken, die auf dem Computer, der anderen programmierbaren Datenverarbeitungsvorrichtung oder der anderen Einheit ausgeführt werden sollen, um einen durch einen Computer umgesetzten Prozess zu erzeugen, so dass die Befehle, die auf dem Computer, der anderen programmierbaren Vorrichtung oder der anderen Einheit ausgeführt werden, die Funktionen/Wirkungen, die in dem Block oder Blöcken des Ablaufplans und/oder Blockschaltbilds spezifiziert sind, umsetzen.
-
Der Ablaufplan und die Blockdarstellungen in den Figuren veranschaulichen die Architektur, Funktionalität und Operation von möglichen Umsetzungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedener Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in dem Ablaufplan oder in Blockdarstellungen ein Modul, Segment oder Abschnitt von Befehlen repräsentieren, der einen oder mehrere ausführbare Befehle zum Umsetzen der spezifizierten logischen Funktion(en) aufweist. Bei einigen alternativen Umsetzungen können die in dem Block angegebenen Funktionen möglicherweise nicht in der in den Figuren angegebenen Reihenfolge auftreten. Zum Beispiel können zwei Blöcke, die nacheinander gezeigt sind, tatsächlich im Wesentlichen gleichzeitig ausgeführt werden oder die Blöcke können gelegentlich in Abhängigkeit von der beteiligten Funktionalität in der umgekehrten Reihenfolge ausgeführt werden. Es wird außerdem angemerkt, dass jeder Block in den Blockdarstellungen und/oder Ablaufplan-Darstellungen und Kombinationen von Blöcken in den Blockdarstellungen und/oder der Ablaufplan-Darstellung durch Systeme, die auf spezieller Hardware beruhen, die die spezifizierten Funktionen oder Wirkungen ausführen, oder Kombinationen aus spezieller Hardware und Computerbefehlen umgesetzt werden können.
-
Zwar enthält diese Offenbarung eine genaue Beschreibung von Cloud-Datenverarbeitung, es ist jedoch von vornherein klar, dass Umsetzungen der hier zitierten Lehren nicht auf eine Cloud-Datenverarbeitungsumgebung beschränkt sind. Stattdessen können Ausführungsformen der vorliegenden Erfindung in Verbindung mit jedem anderen Typ von Datenverarbeitungsumgebung umgesetzt werden, der bekannt ist oder zukünftig entwickelt wird und wie im Folgenden angegeben ist.
-
Bei Peer-to-Peer-(P2P-)Datenverarbeitung oder Vernetzung handelt es sich um eine Architektur mit verteilter Anwendung, die Aufgaben und Arbeitslasten zwischen Peers aufteilt. P2P-Netzwerkdienste oder Peers sind Netzwerkknoten aus in gleicher Weise privilegierten gleichwertigen Teilnehmern der P2P-Anwendung. Peers können einen Teil ihrer Ressourcen wie beispielsweise einen Plattenspeicher anderen Netzwerk-Teilnehmern direkt zur Verfügung stellen, ohne dass dazu eine zentrale Koordinierung durch Server oder stabile Hosts erforderlich ist. Üblicherweise können Peers Ressourcen sowohl liefern als auch in Anspruch nehmen. Das ist im Gegensatz zu dem herkömmlichen Client-Server-Modell, bei dem Inanspruchnahme und Lieferung von Ressourcen aufgeteilt sind.
-
Cloud-Datenverarbeitung ist ein Modell des Liefern von Diensten, mit dem ein problemloser Netzwerkzugang auf Anforderung auf einen gemeinsam genutzten Pool von konfigurierbaren Datenverarbeitungsressourcen (z.B. Netzwerke, Netzwerkbandbreite, Server, Verarbeitung, Speicher, Speichereinrichtungen, Anwendungen, virtuelle Maschinen und Dienste) ermöglicht wird, die rasch bereitgestellt und mit einem minimalen Verwaltungsaufwand oder minimaler Wechselwirkung mit einem Anbieter des Dienstes aufgegeben werden können. Dieses Cloud-Modell kann wenigstens fünf Charakteristiken, wenigstens drei Dienstmodelle und wenigstens vier Einsatzmodelle enthalten.
-
Es gibt folgende Charakteristiken:
Selbstbedienung auf Anforderung: ein Cloud-Kunde kann Datenverarbeitungsfunktionen wie etwa Serverzeit und Netzwerk-Speichereinrichtungen bei Bedarf automatisch einseitig bereitstellen, ohne dass eine menschliche Wechselwirkung mit dem Dienstanbieter erforderlich ist.
-
Umfangreicher Netzwerkzugang: Funktionen können über ein Netzwerk zur Verfügung stehen, und der Zugang kann über Standard-Mechanismen erfolgen, die eine Verwendung von heterogenen Thin- oder Thick-Client-Plattformen (z.B. Mobiltelefone, Laptops und PDAs) unterstützen.
-
Ressourcen-Poolbildung: die Datenverarbeitungs-Ressourcen eines Anbieters werden in einem Pool zusammengefasst, um mehrere Kunden unter Verwendung eines Mehrmandanten-Modells mit unterschiedlichen physischen und virtuellen Ressourcen zu versorgen, die dynamisch zugewiesen und nach Bedarf erneut zugewiesen werden. Es gibt eine Art von Standortunabhängigkeit dahingehend, dass der Kunde im Allgemeinen keine Kontrolle oder Kenntnis des genauen Standorts der bereitgestellten Ressource hat, er kann jedoch in der Lage sein, den Standort auf einer höheren Abstraktionsebene (z.B. Land, Staat oder Datenzentrum) anzugeben.
-
Schnelle Anpassbarkeit: Funktionen können schnell und elastisch, in einigen Fällen automatisch für eine schnelle Erweiterung, bereitgestellt werden und für eine schnelle Verkleinerung rasch freigegeben werden. Für den Kunden erscheinen die Funktionen, die zur Bereitstellung zur Verfügung stehen, häufig unbegrenzt und können jederzeit in beliebiger Menge gekauft werden.
-
Gemessener Dienst: Cloud-Systeme steuern und optimieren automatisch die Ressourcen-Nutzung durch die vorteilhafte Nutzung einer Messfunktion auf einem bestimmten Abstraktionsgrad, der für den Typ des Dienstes geeignet ist (z.B. Speicherung, Verarbeitung, Bandbreite und aktive Benutzerkonten). Die Ressourcen-Nutzung kann überwacht, gesteuert, und es kann von ihr berichtet werden, wodurch sowohl für den Anbieter als auch für den Kunden des genutzten Dienstes eine Transparenz bereitgestellt wird.
-
Es gibt folgende Dienstmodelle:
Software als ein Dienst (Software as a Service, SaaS): Die für den Kunden bereitgestellte Funktion besteht darin, die Anwendungen des Anbieters zu verwenden, die in einer Cloud-Infrastruktur ausgeführt werden. Die Anwendungen sind von verschiedenen Client-Einheiten über eine Thin-Client-Schnittstelle wie etwa einen Web-Browser (z.B. eMails auf Web-Grundlage) zugänglich. Der Kunde verwaltet oder steuert nicht die zugrunde liegende Cloud-Infrastruktur, zu der Netzwerk, Server, Betriebssysteme, Speicher oder sogar einzelne Anwendungsmöglichkeiten gehören, mit der möglichen Ausnahme von begrenzten benutzerspezifischen Anwendungskonfigurationseinstellungen.
-
Plattform als ein Dienst (Platform as a Service, PaaS): Die für den Kunden bereitgestellte Funktion besteht darin, in der Cloud-Infrastruktur vom Kunden erzeugte oder erworbene Anwendungen einzusetzen, die unter Verwendung von durch den Anbieter unterstützten Programmiersprachen und Tools erzeugt werden. Der Kunde verwaltet oder steuert nicht die zugrunde liegende Cloud-Infrastruktur, zu der Netzwerke, Server, Betriebssysteme oder Speicher gehören, hat jedoch steuernden Einfluss auf die eingesetzten Anwendungen und möglicherweise auf Konfigurationseinstellungen einer Anwendungs-Hosting-Umgebung.
-
Infrastruktur als ein Dienst (Infrastructure as a Service, IaaS): Die für den Kunden bereitgestellte Funktion besteht in der Bereitstellung von Verarbeitung, Speichereinrichtungen, Netzwerken und anderen grundlegenden Datenverarbeitungs-Ressourcen, wobei der Kunde in der Lage ist, willkürlich Software einzusetzen und zu betreiben, die Betriebssysteme und Anwendungen enthalten kann. Der Kunde verwaltet und steuert nicht die zugrunde liegende Cloud-Infrastruktur, hat jedoch steuernden Einfluss auf Betriebssysteme, Speichereinrichtungen, eingesetzte Anwendungen und dies eingeschränkt möglicherweise auch auf ausgewählte Netzwerkkomponenten (z.B. Host-Firewalls).
-
Es gibt folgende Einsatzmodelle:
Privat-Cloud: Die Cloud-Infrastruktur wird lediglich für eine Organisation betrieben. Sie kann durch die Organisation oder eine dritte Stelle verwaltet werden und kann intern oder extern vorhanden sein.
-
Community-Cloud: Die Cloud-Infrastruktur wird durch mehrere Organisationen gemeinsam genutzt und unterstützt eine bestimmte Community, die durch gemeinsame Belange verbunden ist (z.B. Zielsetzung, Sicherheitsanforderungen, Strategie und Konformitätserwägungen). Sie kann durch die Organisationen oder eine dritte Stelle verwaltet werden und kann intern oder extern vorhanden sein.
-
Öffentliche Cloud: Die Cloud-Infrastruktur wird der allgemeinen Öffentlichkeit oder einer großen Branchengruppe zur Verfügung gestellt und gehört einer Organisation, die Cloud-Dienste verkauft.
-
Hybrid-Cloud: die Cloud-Infrastruktur ist eine Zusammensetzung aus zwei oder mehr Clouds (Privat-, Community- oder öffentlich), die eigenständige Entitäten bleiben, jedoch durch eine standardisierte oder rechtlich geschützte Technologie miteinander verbunden sind, die eine Daten- und Anwendungsbeweglichkeit ermöglicht (z.B. Cloud-Bursting zum Lastausgleich zwischen Clouds).
-
Eine Cloud-Datenverarbeitungsumgebung ist dienstorientiert mit dem Schwerpunkt auf Statusunabhängigkeit, geringe Kopplung, Modularität und semantische Interoperabilität. Der Kern der Cloud-Datenverarbeitung ist eine Infrastruktur, die ein Netzwerk aus miteinander verbundenen Knoten aufweist.
-
In 1 ist eine schematische Darstellung eines Beispiels eines Cloud-Datenverarbeitungsknotens gezeigt. Der Cloud-Datenverarbeitungsknoten 10 ist lediglich Beispiel eines geeigneten Cloud-Datenverarbeitungsknotens und soll keinerlei Einschränkungen an dem Umfang der Verwendungsmöglichkeiten oder der Funktionalität von Ausführungsformen der hier beschriebenen Erfindung darstellen. Unabhängig davon kann der Cloud-Datenverarbeitungsknoten 10 umgesetzt werden und/oder jede der vorstehend ausgeführten Funktionalitäten ausführen.
-
Bei dem Cloud-Datenverarbeitungsknoten 10 handelt es sich um ein Computersystem/einen Server 12, das bzw. der mit zahlreichen anderen Umgebungen oder Konfigurationen eines Universal- oder speziellen Datenverarbeitungssystems betrieben werden kann. Zu Beispielen bekannter Datenverarbeitungssysteme, Umgebungen und/oder Konfigurationen, die für eine Verwendung mit dem Computersystem/Server 12 geeignet sind, gehören Personal-Computer-Systeme, Server-Computersysteme, Thin-Clients, Thick-Clients, handgehaltene oder Laptop-Einheiten, Multiprozessorsysteme, Systeme auf der Grundlage von Mikroprozessoren, Set-Top-Boxes, programmierbare Verbraucherelektronik, Netzwerk-PCs, Minicomputersysteme, Mainframe-Computersysteme und verteilte Cloud-Datenverarbeitungsumgebungen, die eines bzw. eine der oben genannten Systeme oder Einheiten enthalten, und dergleichen, sind jedoch nicht auf diese beschränkt.
-
Das Computersystem/der Server 12 kann im allgemeinen Kontext von durch ein Computersystem ausführbaren Befehlen wie z.B. als Programmmodule, die durch ein Computersystem ausgeführt werden, beschrieben werden. Programmmodule können im Allgemeinen Routinen, Programme, Objekte, Komponenten, Logikschaltungen, Datenstrukturen usw. enthalten, die spezielle Aufgaben ausführen oder bestimmte Typen abstrakter Daten umsetzen. Das Computersystem/der Server 12 kann in verteilten Cloud-Datenverarbeitungsumgebungen realisiert werden, wobei Aufgaben durch ferne (remote) Datenverarbeitungseinheiten ausgeführt werden, die über ein Datenübertragungsnetzwerk verbunden sind. Bei einer verteilten Cloud-Datenverarbeitungsumgebung können sich Programmmodule in Speichermedien sowohl des lokalen als auch des fernen Computersystems befinden, zu denen Speichereinheiten des Arbeitsspeichers gehören.
-
Wie in 1 gezeigt ist das Computersystem/der Server 12 in dem Cloud-Datenverarbeitungsknoten 10 in Form einer Universal-Datenverarbeitungseinheit gezeigt. Die Komponenten des Computersystems/des Servers 12 können einen oder mehrere Prozessoren oder Verarbeitungseinheiten 16, einen Systemspeicher 28 und einen Bus 18 enthalten, der zahlreiche Systemkomponenten, darunter den Systemspeicher 28 mit dem Prozessor 15 verbindet, sind jedoch nicht darauf beschränkt.
-
Der Bus 18 repräsentiert einen oder mehrere von verschiedenen Typen von Busstrukturen, darunter einen Speicherbus oder eine Speichersteuereinheit, einen peripheren Bus, einen beschleunigten Grafikanschluss und einen Prozessoroder lokalen Bus unter Verwendung einer aus einer Vielfalt von Busarchitekturen. Lediglich beispielhaft und nicht einschränkend gehören zu derartigen Architekturen Industry-Standard-Architecture-(ISA-)Bus, Micro-Channel-Architecture-(MCA-)Bus, Enhanced-ISA-(EISA-)Bus, Video-Electronics-Standards-Association-(VESA-)Lokalbus und Peripheral-Component-Interconnects-(PCI-)Bus.
-
Das Computersystem/der Server 12 enthält üblicherweise eine Vielzahl von durch das Computersystem lesbaren Medien. Bei derartigen Medien kann es sich jedes verfügbare Medium handeln, auf das durch das Computersystem/den Server 12 zugegriffen werden kann, und es enthält sowohl flüchtige und nichtflüchtige Medien als auch Wechsel- und Nichtwechsel-Medien.
-
Der Systemspeicher 28 kann durch ein Computersystem lesbare Medien in der Form eines flüchtigen Speichers wie z.B. ein Direktzugriffsspeicher (RAM) 30 und/oder einen Cache-Speicher 32 enthalten. Das Computersystem/der Server 12 kann ferner andere flüchtige/nichtflüchtige Wechsel/Nichtwechsel-Speichermedien des Computersystems enthalten. Lediglich beispielhaft kann das Speichersystem 34 zum Lesen von und zum Schreiben auf Nichtwechsel-, nichtflüchtige magnetische Medien bereitgestellt werden (die nicht gezeigt sind und üblicherweise als „Festplattenlaufwerk“ bezeichnet werden). Obwohl nicht gezeigt können ein magnetisches Plattenlaufwerk zum Lesen von und zum Schreiben auf eine nichtflüchtige magnetische Wechselplatte (z.B. eine „Floppy Disk“) und ein optisches Plattenlaufwerk zum Lesen von und zum Schreiben auf eine nichtflüchtige optische Wechselplatte wie z.B. ein CD-ROM, DVD-ROM oder ein anderes optisches Medium bereitgestellt werden. Bei derartigen Fällen kann jedes Medium mit dem Bus 18 durch eine oder mehrere Datenmedien-Schnittstellen verbunden sein. Wie weiter im Folgenden dargestellt und beschrieben wird, kann der Speicher 28 wenigstens ein Programmprodukt mit einer Gruppe von Programmmodulen (z.B. wenigstens einem Programmmodul) enthalten, die so eingerichtet sind, dass sie die Funktionen von Ausführungsformen der Erfindung ausführen.
-
Das Programm/Dienstprogramm 40, das eine Gruppe von Programmmodulen 42 (wenigstens ein Programmmodul) aufweist, kann ebenso wie ein Betriebssystem, ein oder mehrere Anwendungsprogramme und Programmdaten beispielhaft und nicht als Einschränkung in einem Speicher 28 gespeichert sein. In jedem Betriebssystem, einem oder mehreren Anwendungsprogrammen, anderen Programmmodulen und Programmdaten oder bestimmten Kombinationen hiervon kann eine Vernetzungsumgebung umgesetzt werden. Programmmodule 42 führen im Allgemeinen die Funktionen und/oder Verfahrensweisen von hier beschriebenen Ausführungsformen der Erfindung aus.
-
Das Computersystem/der Server 12 kann außerdem mit einer oder mehreren externen Einheiten 14 wie z.B. eine Tastatur, eine Zeigeeinheit, eine Anzeige 24 usw.; mit einer oder mehreren Einheiten, die ein Zusammenwirken eines Benutzers mit dem Computersystem/Server 12 ermöglichen; und/oder mit allen Einheiten (z.B. Netzwerkkarte, Modem usw.) Daten austauschen, die dem Computersystem/Server 12 einen Datenaustausch mit einer oder mehreren anderen Datenverarbeitungseinheiten ermöglichen. Ein derartiger Datenaustausch kann über Eingabe/Ausgabe-(E/A-)Schnittstellen 22 erfolgen. Des Weiteren kann das Computersystem/der Server 12 mit einem oder mehreren Netzwerken wie z.B. einem lokalen Netz (LAN), einem allgemeinen Weitverkehrsnetz (WAN) und/oder einem öffentlichen Netzwerk (z.B. das Internet) über einen Netzwerkadapter 20 Daten austauschen. Wie dargestellt tauscht der Netzwerkadapter 20 Daten mit den anderen Komponenten von Computersystem/Server 12 über einen Bus 18 aus. Obwohl nicht gezeigt sollte klar sein, dass in Verbindung mit dem Computersystem/Server 12 weitere Hardware- und/oder Software-Komponenten verwendet werden könnten. Zu Beispielen gehören, sind jedoch nicht beschränkt auf: Mikrocode, Einheitentreiber, redundante Verarbeitungseinheiten, externe Plattenlaufwerk-Arrays, RAID-Systeme, Bandlaufwerke und Datenarchiv-Speichersysteme usw.
-
In 2 ist eine veranschaulichende Cloud-Datenverarbeitungsumgebung 50 dargestellt. Wie gezeigt weist die Cloud-Datenverarbeitungsumgebung 50 einen oder mehrere Cloud-Datenverarbeitungsknoten 10 auf, mit denen lokale Datenverarbeitungseinheiten, die von Cloud-Kunden verwendet werden wie z.B. ein persönlicher digitaler Assistent (PDA) oder ein Funktelefon 54A, ein Desktop-Computer 54B, ein Laptop-Computer 54C und/oder ein 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 wie z.B. in privaten, Community-, öffentlichen oder Hybrid-Clouds, die oben beschrieben wurden, oder in einer Kombination hiervon gruppiert sein (nicht gezeigt). Dadurch kann die Cloud-Datenverarbeitungsumgebung 50 Infrastruktur, Plattformen und/oder Software als Dienste bereitstellen, für die ein Cloud-Kunde keine Ressourcen in einer lokalen Datenverarbeitungseinheit vorhalten muss. Es ist klar, dass die Typen von Datenverarbeitungseinheiten 54A bis 54N, die in 2 gezeigt sind, lediglich veranschaulichend sein sollen und die Cloud-Datenverarbeitungsumgebung 50 mit jedem Typ von computergestützter Einheit über jeden Typ von Netzwerk und/oder von im Netzwerk adressierbarer Verbindung (z.B. unter Verwendung eines Web-Browser) Daten austauschen kann.
-
In 3 ist eine Gruppe von funktionalen Abstraktionsschichten gezeigt, die durch die Cloud-Datenverarbeitungsumgebung 50 (2) bereitgestellt wird. Es sollte von vornherein klar sein, dass die in 3 gezeigten Komponenten, Schichten und Funktionen lediglich veranschaulichend sein sollen und Ausführungsformen der Erfindung nicht auf diese beschränkt sind. Wie dargestellt werden die folgenden Schichten und entsprechenden Funktionen bereitgestellt:
Die Hardware- und Software-Schicht 60 enthält Hardware- und Software-Komponenten. Zu Beispielen von Hardware-Komponenten gehören Mainframe-Computer, in einem Beispiel IBM® zSeries®-Systeme; Server auf der Grundlage einer RISC-(Reduced Instruction Set Computer-)Architektur, in einem Beispiel IBM pSeries®-Systeme; IBM xSeries®-Systeme; IBM BladeCenter®-Systeme; Speichereinheiten; Netzwerke 61 und Vernetzungskomponenten. Zu Beispielen von Software-Komponenten gehören Netzwerk-Anwendungsserver-Software, in einem Beispiel IBM WebSphere®-Anwendungsserver-Software; und Datenbank-Software, in einem Beispiel IBM DB2®-Datenbank-Software. (IBM, zSeries, pSeries, xSeries, BladeCenter, WebSphere und DB2 sind Warenzeichen der International Business Machines Corporation, die weltweit in vielen Gerichtsbarkeiten eingetragen sind).
-
Die Virtualisierungsschicht 62 stellt eine Abstraktionsschicht bereit, von der die folgenden Beispiele virtueller Entitäten bereitgestellt werden können: virtuelle Server; virtuelle Speichereinrichtungen; virtuelle Netzwerke 63, darunter virtuelle private Netzwerke; virtuelle Anwendungen und Betriebssysteme; und virtuelle Clients.
-
Bei einem Beispiel kann die Verwaltungsschicht 64 die nachfolgend beschriebenen Funktionen bereitstellen. Eine kontextbezogene Ressourcenbereitstellung gewährleistet bevorzugt eine dynamische Beschaffung von Datenverarbeitungsressourcen und weiterer Ressourcen, die zum Ausführen von Aufgaben in der Cloud-Datenverarbeitungsumgebung genutzt werden. Messung und Preisbildung (Metering and Pricing) stellt eine Kostenverfolgungsfunktion in Bezug auf die in der Cloud-Datenverarbeitungsumgebung verwendeten Ressourcen sowie eine Abrechnung oder Fakturierung (Billing and Invoicing) für die Inanspruchnahme dieser Ressourcen bereit. In einem Beispiel können diese Ressourcen Anwendungssoftware-Lizenzen aufweisen. Sicherheit (Security) stellt eine Identitätsprüfung für Cloud-Kunden und Aufgaben sowie Schutz von Daten und andere Ressourcen bereit. Benutzerportal (User Portal) stellt einen Zugang zur Cloud-Datenverarbeitungsumgebung für Kunden und Systemadministratoren bereit. Kontextbezogene Dienstgüteverwaltung (Service Level Management) sorgt bevorzugt für eine Zuweisung und Verwaltung von Cloud-Datenverarbeitungsressourcen, so dass vorgeschriebene Dienstgütewerte eingehalten werden. Kontextbezogene Planung und Erfüllung von Dienstgütevereinbarungen (SLA) sorgt bevorzugt für eine vorbereitende Reservierung und Beschaffung von Cloud-Datenverarbeitungsressourcen, für die gemäß einer Dienstgütevereinbarung (SLA) ein zukünftiger Bedarf erwartet wird.
-
Die Arbeitslastschicht 66 stellt Beispiele der Funktionalität bereit, für die die Cloud-Datenverarbeitungsumgebung verwendet werden kann. Zu Beispielen der Arbeitslast und Funktionen, die von dieser Schicht bereitgestellt werden können, gehören: Zuordnung und Navigation; Software-Entwicklung und Lebenszyklus-Verwaltung; Bereitstellung von Bildungsinhalten im virtuellen Klassenzimmer; Datenanalysenverarbeitung; Transaktionsverarbeitung; und soziale Vernetzung 68.
-
4 zeigt ein Beispiel eines Peer-to-Peer-Speichersystems 100 eines Unternehmens-Netzwerks (z.B. 50, 61, 63 in den 1 und 2), wobei Peers verteilte Datei-Replikate gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung verwalten. Eine soziale Plattform 102 des Unternehmens kann einen oder mehrere Computer z.B. 10 enthalten. Vorhergehend haben sich Peers/Beschäftigte des Unternehmens, die hier auch allgemein als Benutzer bezeichnet werden, bei der sozialen Plattform 102 des Unternehmens registriert. Benutzereinheiten 100-A, 100-B, 100-C, 100-D, 100-E, 100-F, 100-G z.B. in Computern 10 54A, 54B, 54C oder 54N sind angemeldeten Benutzern zugehörig. Bei diesem Beispiel handelt es sich bei den Benutzern 100-A, 100-B, 100-C, 100-D um zugehörige Benutzer, die als Teilnehmer einer bestehenden Projekt-Community gekennzeichnet werden. Bei den Benutzern 100-B, 100-E, 100-F, 100-G handelt es sich um Teilnehmer einer sozialen Community 106 (beispielsweise gleiche Abteilung oder gleicher Bereich). Außerdem gehört bei diesem Beispiel ein Benutzer 100-B zu beiden Communitys, Unternehmensprojekt 104 und soziale Community 106. Es ist zu beachten, dass sich Benutzer anschließen, indem sie zugehörige Einheiten 100-A, 100-B, 100-C, 100-D, 100-E, 100-F, 100-G beispielsweise durch das Internet oder ein Intranet verbinden. Zur einfachen Beschreibung werden an dieser Stelle die Begriffe Benutzer, Peers und zugehörige Einheiten untereinander austauschbar verwendet.
-
Beispielsweise kann ein Benutzer z.B. 100-C ein Hochladen oder ein Übertragen einer einem Projekt 104 zugehörigen Datei 108 von der Plattform 102 des Unternehmens, z.B. im Speicher 34 von 1, auslösen. Normalerweise werden Replikate der Datei 108 in Teilnehmereinheiten des Projekts 104 bei einem oder mehreren anderen Benutzern 100-A, 100-B, 100-D gespeichert. Wenn ein Benutzer, z.B. Benutzer 100-B, die Datei 108 dem Benutzerprofil zuordnen möchte, sie jedoch nicht mit anderen Unternehmens-Benutzern gemeinsam nutzen möchte, speichern andere Benutzer 100-E, 100-F, 100-G der sozialen Community 106 (z.B. aus derselben Abteilung oder demselben Bereich) die Datei 108. Um zu ermitteln, welcher der Benutzer 100-C oder 100-B die Datei 108 speichert, führt das System an der Datei eine Vorverarbeitung aus, indem Kontexte oder Kennzeichen (context or tags), beispielsweise Projekt oder Objekt, ableitet. Das System kann Kontexte oder Kennzeichen unter Verwendung von herkömmlichen Schlüsselwort-Extraktionstechniken ableiten, überwachtes maschinelles Lernen, Text-Mining, Analyse der Worthäufigkeit, Bayes-Klassifizierung oder lexikalische Ketten. Anschließend empfiehlt das System eine Menge von Benutzern, die mit 100-B oder 100-C in der sozialen Community 106 oder 104 verbunden sind, die den abgeleiteten Datei-Kontext/Kennzeichen zugehörig sind.
-
Statt dass jeder Benutzer einen Speicher hat, der auf die entsprechende verfügbare Einheit 100-A, 100-B, 100-C, 100-D, 100-E, 100-F, 100-G beschränkt ist, wird die Größe des verfügbaren Speichers, der verwendet wird, durch Systemadministratoren konfiguriert. Bei Bedarf kann der verfügbare Speicher so eingerichtet werden, dass Systemanforderungen eingehalten werden. In dem System wird die Anzahl von Benutzern, die ein Replikat speichern, auf der Grundlage von zeitlichen Aspekten der sozialen Kreise berechnet, darunter beispielsweise die Anzahl von Aktivitäten, Zugriffen oder Interaktionen zwischen Kreisteilnehmern.
-
Bei einem bevorzugten Peer-to-Peer-Speichersystem 100 wird der Speicher über die Peers 100-A, 100-B, 100-C, 100-D und/oder 100-B, 100-E, 100F–F100G zu einem kostengünstigen gemeinschaftlichen Projekt/Unternehmens-Speicher zusammengefasst. Benutzer speichern Kopien des betreffenden Projekts und Daten der Arbeitsaktivität in Peer-Einheiten 100-A, 100-B, 100-C, 100-D, 100-E, 100-F, 100-G des sozialen Netzwerks des Unternehmens. Die Peers 100-A, 100-B, 100-C, 100-D, 100-E, 100-F, 100-G verwenden zeitliche Charakteristiken des sozialen Netzwerks, um die Datei-Replikate dynamisch zu verwalten und untereinander zu verteilen. Die Replikate der Datei 108 vom Peer 100-B werden beispielsweise lokal in den Peer-Einheiten 100-E, 100-F und 100-G gespeichert.
-
5 zeigt ein Beispiel einer sozial vernetzten Peer-Einheit 110 eines Unternehmens in einem bevorzugten Peer-to-Peer-(z.B. Worker-to-Worker-)Netzwerk-Speichersystem 100 von 4. Jede Peer-Einheit 110 enthält einen Verbinder 112 des sozialen Netzwerks, einen Verwalter 114 des lokalen Speichers, einen lokalen Speicher 116 und eine ferne oder Remote-Schnittstelleneinheit 118. Der Verbinder 112 des sozialen Netzwerks verwaltet soziale Verbindungsaktivitäten des Peer. Der Verwalter 114 des lokalen Speichers verwaltet sämtliche Benutzerdaten des Speichernetzwerks, die im lokalen Speicher 116 gespeichert sind. Die Remote-Schnittstelleneinheit 118 verwaltet Abrufen und Übertragen, darunter Hochladen und Herunterladen von Anforderungen zu/von anderen Peer-Einheiten 110.
-
Die Peer-Einheiten (100-A, 100-B, 100-C, 100-D, 100-E, 100-F, 100-G in 4) prüfen in einem sozialen Netzwerk z.B. 50, 61, 63 in den 2 und 3 die Berechtigung zum Eintreten/erneuten Eintreten in Gruppen 104, 106. Nach dem Eintreten unterbindet der Verbinder 112 des sozialen Netzwerks in jeder Einheit 110 alle Versuche des Zugreifens auf Dateien, die Communitys oder Profilen des Unternehmens zugehörig sind. Der Verbinder 112 des sozialen Netzwerks prüft Zugriffsversuche auf Berechtigung und verbindet mit berechtigten Dateien, um einen Zugriff auszuführen. Der Verbinder 112 des sozialen Netzwerks verwaltet außerdem alle neuen heraufgeladenen Daten, indem er zugehörige Datei-Kontexte/Kennzeichen erkennt und eine Liste von Benutzern oder eine Benutzergruppe zum Speichern von jeweils neu heraufgeladenen Daten auf der Grundlage von zeitlichen Charakteristiken des sozialen Netzwerks empfiehlt und anzeigt.
-
Der Verwalter 114 des lokalen Speichers verwaltet sämtliche Daten, die in der bestimmten Einheit 110 im lokalen Speicher 116 gespeichert sind. Somit speichert der Verwalter 114 des lokalen Speichers Daten, ruft gespeicherte Daten ab und verwaltet den verbleibenden nicht verwendeten Speicher. Außerdem hält der Verwalter 114 des lokalen Speichers den Status aller gespeicherten Kopien vor und löscht selektiv veraltete Replikate/Kopien, z.B. auf der Grundlage eines Ablaufdatums und einer geringen Nutzung. Bei dem lokalen Speicher 116 kann es sich um jeden geeigneten nichtflüchtigen Speicher wie beispielsweise ein Festplattenlaufwerk oder einen Flash-Speicher handeln, der dauerhaft oder austauschbar sein kann, z.B. ein Halbleiterdatenträger (SSD), Mikro-SD oder XD-Karten oder dergleichen.
-
Die ferne Schnittstelleneinheit 118 verwaltet einen Speicher für einzelne Dateien und Dateiübertragungen zu/von anderen Peer-Einheiten 110. Wenn ein Teilnehmer bewirkt, dass ein Dokument bei einer Peer-Einheit 110 gemeinsam genutzt wird, laden andere Peer-Einheiten 110 eine Kopie des gemeinsam genutzten Dokuments herunter, die die ferne Schnittstelleneinheit 118 als ein Replikat des Originals behandelt. Des Weiteren reagieren der ferne Dateispeicher 116 und die Übertragungseinheit 118 auf Anforderungen von fernen Benutzern von anderen Peer-Einheiten 110 zum Hochladen oder Herunterladen gespeicherter Dateien und Verwalten des Dateiabrufs und der Übertragung. Die ferne Schnittstelleneinheit 118 hält den Status aller Dateien vor, die gemeinsam genutzt werden und an einem fernen Standort in der Peer-Einheit 110 des Benutzers gespeichert werden. Die Peer-Einheit 110 behandelt jede neue Replikat-Version einer Datei als eine neue Datei.
-
Wie oben angegeben hat vorzugsweise jeder Gruppenteilnehmer eine einzige Bezeichner/Anmelde- oder Benutzer-Kennung, und für jede Gruppe werden ein oder mehrere Teilnehmer als Gruppenadministrator(en) benannt. Da jeder Gruppenteilnehmer eine einzige Kennung aufweist, meldet sich der Teilnehmer an dem sozialen Netzwerk mit derselben Benutzer-Kennung bei allen Einheiten an, um eine eindeutige Online-Präsenz aufrechtzuerhalten, selbst wenn sich ein Teilnehmer von mehreren Einheiten 110 (z.B. Smartphone 54A, Desktop-Computer 54B und Laptop-Computer 54C) anmeldet. Des Weiteren handelt es sich vorzugsweise bei jeder von mehreren Einheiten, die einem Teilnehmer zugehörig sind, um Peer-Einheiten 110 mit einem lokalen Peer-to-Peer-Speichersystem, das den Speicher in der entsprechenden Einheit 110 verwaltet. Optional können die Einheiten 110 alle Sicherheits- und/oder Datenschutzeinrichtungen nach dem Stand der Technik enthalten, z.B. Kryptografie zur Nachrichten- und Datei-Verschlüsselung und Berechtigung von Dateiübertragungen.
-
6 zeigt ein Beispiel einer Peer-Einheit (z.B. 110 in 5), die einer Menge von Benutzern empfiehlt 120, in Reaktion auf eine Anforderung 122 zum Hochladen einer neuen Datei von dem Datei-Besitzer Replikate der Dateien in einer Peer-Einheit 110 zu speichern. Der Fernverbinder 118 verwaltet die Anforderung des Datei-Besitzers, leitet die Anforderung an eine Menge von Peers weiter, die aus der Liste 136 ausgewählt werden. Welche soziale Community zum Speichern der Replikate ausgewählt wird, hängt von dem Datei-Kontext ab. Die Anzahl der Benutzer von der sozialen Community in der Menge definiert die Anzahl von Dokument-Replikaten, die für jede einzelne Datei gespeichert werden. In dem System (z.B. 100 in 1) wird diese Anzahl auf der Grundlage von zeitlichen Aspekten der sozialen Kreise 104, 106 (z.B. die Anzahl von Aktivitäten, Zugriffen oder Interaktionen zwischen Teilnehmern) berechnet.
-
In dem System wird die Benutzermenge so ausgewählt, dass die Wahrscheinlichkeit möglichst groß wird, dass wenigstens ein Benutzer für den Datei-Besitzer zum Zugreifen auf das Replikat zur Verfügung steht, wenn der Besitzer die Datei wahrscheinlich bald benötigen wird. Somit können in dem System Benutzer aus der sozialen Community von unterschiedlichen Standorten/Zeitzonen und anhand früherer Informationen zu Peer-Verbindungen, z.B. Datum/Uhrzeit und Dauer von Verbindungen ausgewählt werden. Jedes Mal, wenn ein Peer ein Speichern einer Kopie anfordert 122, wird das aktuelle Replikat bei einem Benutzer aus der Benutzermenge gespeichert, bis alle Benutzer in der Menge ein Replikat gespeichert haben. Es ist zu beachten, da es sich bei Arbeitsbeziehungen um dynamische Beziehungen handelt, ist die Menge von Benutzern, die zum Speichern jedes einzelnen Replikats empfohlen wird, dynamisch und kann sich mit der Zeit ändern.
-
Wenn eine Peer-Einheit eine projektbezogene Datei hoch lädt oder überträgt, wird diese Datei von dem Einheitensystem vorverarbeitet, um andere Peer-Einheiten aus einer gegebenen sozialen Community zu ermitteln, in denen sie gespeichert werden soll. Das Vorverarbeiten erfolgt vorzugsweise durch die Einheit, um deren Kontext oder deren Kennzeichen (tags) (z.B. Projekt oder Objekt) unter Verwendung herkömmlicher Techniken zum Extrahieren von Schlüsselwörtern abzuleiten wie beispielsweise überwachtes maschinelles Lernen, Text-Mining, Analyse der Worthäufigkeit, Bayes-Klassifizierung oder lexikalische Ketten.
-
Beim Empfangen einer Anforderung 122 extrahiert der Verbinder 112 des sozialen Netzwerks also eine Liste 124 von Kennzeichen (T) aus der neuen Datei und leitet 126 einen Dateikontext ab. Dann ruft 128 der Verbinder 112 des sozialen Netzwerks eine soziale Community oder einen Kreis (C), die bzw. der dem Kontext/den Kennzeichen (Projekt oder Objekt) zugehörig ist, und Informationen (n) aus einer entsprechenden Statistik (S) ab. Der Verwalter 114 des lokalen Speichers ermittelt 130 die Anzahl (v) von Replikaten (R), die aufrechterhalten werden, auf der Grundlage von Informationen (n) aus einer zugehörigen Statistik (S). In dem System 100 kann beispielsweise eine größere Anzahl von Replikaten (v) für Dokumente gespeichert werden, die sehr aktive Communitys betreffen, z.B. Communitys mit mehreren Arbeitslinien und hochgeladenen Dokumenten, als für Communitys mit geringerer Aktivität.
-
Die Benutzermenge wird anhand der Verfügbarkeit von Benutzern in demselben sozialen Kreis (Community, Projekt, Aktivität oder in Verbindung mit dem Benutzer) mit dem Ziel ausgewählt, die Verfügbarkeit von Dokumenten möglichst groß zu machen. Eine entsprechende Statistik (S) kann beispielsweise enthalten: die Anzahl von Benutzern in einem bestimmten sozialen Kreis; eine Anzahl von Nachrichten, die zwischen Benutzern ausgetauscht wurden; eine Anzahl von Benutzeraktivitäten, die in der Community oder im Profil entsprechende Dokumente und Informationen gesendet haben; eine Anzahl von hochgeladenen Dateien; eine Anzahl von Zugriffen auf Dateien, die dasselbe Kennzeichen aufweisen; eine Anzahl von Zugriffen auf frühere Dateiversionen; und/oder eine Kennzeichen/Kontext-Relevanz. Die Verfügbarkeit von Dokumenten kann auf einem Maximalwert sein, beispielsweise bei Benutzern eines sozialen Kreises, die sich an unterschiedlichen Standorten/Zeitzonen befinden und auf der Grundlage der Vorgeschichte der Verbindungen des Peer, die z.B. anzeigt, wann zuletzt ein Zugriff durch einen Benutzer erfolgte oder normalerweise Zugriffe auf das System des sozialen Netzwerks erfolgten. Der bzw. die Systemadministratoren definieren vorzugsweise eine Zuordnungsfunktion (f), um die Anzahl von Replikaten (v) zu ermitteln 130, wobei die durch die Funktion definierte Zahl die Form aufweist.
-
Der Verwalter 114 des lokalen Speichers ermittelt 132 vorzugsweise außerdem eine Anzahl von Replikaten aus einer Anzahl (N) von Tupeln, wobei jedes Tupel einen Parameter enthält, der statistischen Angaben zugehörig ist. Eine derartige Menge von Tupeln kann beispielsweise eine Anzahl von Benutzern (u), eine Anzahl von Aktivitäten (g) oder eine Relevanz (h) enthalten.
-
Aus den Ermittlungen 130, 132 wählt der Verwalter 114 des lokalen Speichers eine Menge von verbundenen Peers in dem gegenwärtigen sozialen Kreis oder Community, die den abgeleiteten Kontext/Kennzeichen betreffen. Anschließend erzeugt 134 der Verwalter 114 des lokalen Speichers eine Replikat-Benutzerliste (L) aus einem angegebenen sozialen Kreis (C), um diese dem anfordernden Benutzer oder dem Dateibesitzer anzuzeigen 136. Die Einheit empfiehlt die Liste von Benutzern, die sich beispielsweise an unterschiedlichen Standorten befinden, die möglicherweise auf der Vorgeschichte der Verbindungen des Benutzers beruht, die z.B. angibt, wann zuletzt ein Zugriff durch einen Benutzer erfolgte oder normalerweise Zugriffe auf das System des sozialen Netzwerks erfolgten. Der Verwalter 144 des lokalen Speichers erzeugt 134 vorzugsweise wiederum eine Replikat-Benutzerliste, um die Verfügbarkeit von Dokumenten für Benutzer eines sozialen Kreises möglichst groß zu machen.
-
Bei der Einheit kann die Liste empfohlener Benutzer grafisch dargestellt werden, z.B. unter Verwendung einer typischen grafischen Benutzeroberfläche (GUI), um die Empfehlung in einem lokalen Fenster z.B. als eine Liste anzuzeigen und zuzulassen, dass der zugehörige Peer die Kopie einer neuen Datei in einem oder mehreren empfohlenen Peers speichert. Des Weiteren kann der zugehörige Peer einen, einige oder alle angezeigten Peers auswählen oder neue Peers entfernen oder hinzufügen. Die Einheit enthält Informationen von der Auswahl als Rückmeldung für ein verbessertes Training bei zukünftigen Empfehlungen. Daher kann die Einheit beispielsweise feststellen, dass nichtklassifizierte Dokumente in Einheiten gespeichert sind, die einem Peer zugeordnet sind, wobei das bei vertraulichen Dokumenten jedoch nicht der Fall ist. Spätere Empfehlungen können anhand dieser abgeleiteten Präferenzen erfolgen.
-
7 zeigt ein Beispiel, wie Verwalter 114 eines lokalen Speichers einer Peer-Einheit (z.B. 110 in 5) lokal gespeicherte 116 Replikate verwalten 140. Jede lokal gespeicherte Datei (F) 142 weist eine Anzahl (v) von gekennzeichneten/zugewiesenen Replikaten (R), eine Liste von Kennzeichen (T), ein Alter auf der Grundlage eines Zeitstempels (TS) und einen Zugriffszählwert oder eine Zugriffsanzahl (Af) auf. Der Manager 114 des lokalen Speichers speichert normalerweise Datei-Replikate so lange, bis sie zu alt sind (ein bestimmtes Alter erreichen), sowie gefragtere Dateien länger oder bis der Benutzer nicht mehr Teil der sozialen Community ist. Daher ruft das System den sozialen Kreis ab 144, z.B. das Projekt oder die Community. Wenn der Benutzer nicht mehr einem Projekt zugewiesen ist oder beispielsweise die Abteilung gewechselt hat, führt der Speichermanager 114 eine Prüfung 146 aus und das Replikat wird aus dem lokalen Speicher gelöscht 164. Andernfalls prüft das System den Zeitstempel (TS) des Replikats und den zugehörigen Replikat-Zugriffszählwert (Af), um zu ermitteln, ob das Replikat alt oder gefragt ist. Wenn ein Replikat-Zeitstempel angibt, dass das Replikat älter ist 148 als ein ausgewählter Altersschwellenwert (TH1) oder der zugehörige Replikat-Zugriffszählwert größer als ein ausgewählter Schwellenwert (TH2) ist, ruft 150 der Speicherverwalter die Dateivorgeschichte ab. Andernfalls endet 166 das Verarbeiten der Datei f 142.
-
Wenn das Alter der Replikat TH1 übersteigt oder das Replikat sehr gefragt ist, ruft der Verwalter 114 des lokalen Speichers die Dateivorgeschichte 150, eine Statistik und zugehörige statistische Angaben (S) für die Datei 142 ab, darunter beispielsweise wie oft die Datei heruntergeladen wurde und die Anzahl von Datei-Zugriffen/Lesevorgängen. Aus der Dateivorgeschichte ermittelt 152 der Verwalter 114 des lokalen Speichers die Anzahl von Replikaten (Rf). Dann prüft 152 der Speicherverwalter 114, ob diese Anzahl von Replikaten (Rf) den Grenzwert, der vorher ermittelt wurde (130 in 6), d.h. die Anzahl von Replikaten (v), die gespeichert werden sollen, übersteigt.
-
Wenn die Anzahl von aktuell gespeicherten Replikaten unter der ermittelten Anzahl liegt (Rf < v), speichert an anderer Peer das Replikat. Der Verwalter 114 des lokalen Speichers identifiziert die Menge von Benutzern, die zum Speichern der Datei-Replikate empfohlen wurden, und sendet 156 eine Anforderung zum Speichern des Replikats an die Menge. Jede Einheit 110, die bereits ein Replikat speichert und die Anforderung empfängt, ignoriert die Anforderung. Andernfalls speichert 158 eine der empfangenden Einheiten 110 das Replikat.
-
Wenn andernfalls die Anzahl von gespeicherten Replikaten, die momentan gespeichert sind, bereits die ermittelte Anzahl übersteigt (v ≥ Rf), wird das Replikat aus dem Speicher gelöscht. Wenn die anfordernde Einheit 110 einem Administrator zugeordnet ist 160 oder die Datei 142 mit dem Benutzer der Einheit 110 gemeinsam genutzt wurde, sendet der Verwalter 114 des lokalen Speichers eine Anforderung 162 an den Dateibesitzer zum Löschen 164 des alten Replikats.
-
Wenn ein Benutzer Wiederherstellen eines gespeicherten Dokuments oder Zugriff darauf fordert, ruft das bevorzugte System ein verfügbares Replikat ab. Wenn es sich jedoch bei der Anforderung um eine nicht verfügbare gespeicherte Datei handelt, da beispielsweise Teilnehmer in der Peer-Menge momentan nicht online sind, warnt das System den Benutzer beispielsweise über die GUI, dass die Datei aktuell nicht verfügbar ist. Der Benutzer kann vorzugsweise auswählen, ob diese Datei automatisch geladen werden soll, sobald sie verfügbar wird. Gleichzeitig meldet das System, dass die Datei nicht verfügbar ist, und zeichnet die Länge der Nichtverfügbarkeit auf. Die Einheit verwendet gemeldete Informationen während späterer Aktualisierungen zum Festlegen der Benutzermenge, um beispielsweise ein Speichern in einer größeren oder vielfältigeren Menge von Benutzereinheiten 110 zu empfehlen. Außerdem können die gemeldeten Informationen zum Informieren von Benutzern einer Community über einen Zeitrahmen für nichtverfügbare Dateien verwendet werden, um diesen Benutzern zu helfen, eine umfangreichere Benutzermenge von Einheiten auszuwählen.
-
Das bevorzugte System kann vorteilhaft eine Zugriffsvorgeschichte verwenden, z.B. Benutzeraktivität und Zeiten der Verfügbarkeit, um unterschiedliche Zeitzonen für eine ständige Verfügbarkeit (täglich 24 Stunden) (beispielsweise für Benutzer aus USA, Europa und Asien) zu berücksichtigen. Das bevorzugte System trägt des Weiteren einer dynamischen Projekt-Aktivität und wechselnden Beziehungen und Verantwortlichkeiten der Mitarbeiter, Aktualisieren von Speicherorten für Replikate und Anzahlen als Änderungen der Gegebenheiten Rechnung. Das bevorzugte System nutzt den nichtverwendeten Benutzerspeicher wie beispielsweise in Computern, Laptops, Smartphone des Benutzers usw., um Dienstekosten zu vermindern. Da die Speicherung dezentral erfolgt und integrierte Wirkungen auf Beziehungen eines sozialen Netzwerks vertrauen, um eine gemeinsame Speicherung zu ermöglichen, besitzt das bevorzugte System eine bessere Widerstandsfähigkeit gegen korrelierte Ausfälle. Eine zusammengeführte, gemeinsame Speicherung durch Peer-Einheiten stellt Benutzern eines Unternehmens im Vergleich zu früheren Speichersystemen mit öffentlicher Cloud eine zusätzliche Projekt-Speicherkapazität mit besserer Datenkontrolle, besserem Datenschutz und größerer Sicherheit und bei verminderten Kosten zum Speichern von Unternehmensdaten bereit.
-
Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Erfindung wurden für Zwecke der Erläuterung dargestellt, es ist jedoch nicht vorgesehen, dass sie für die offenbarten Ausführungsformen erschöpfend oder einschränkend sein sollen. Viele Modifikationen und Variationen werden einem Fachmann offensichtlich erscheinen, ohne vom Umfang und Erfindungsgedanken der beschriebenen Ausführungsformen abzuweichen. Die hier verwendete Terminologie wurde gewählt, um die Grundgedanken der Ausführungsformen, die praktische Anwendung oder technische Verbesserungen gegenüber am Markt vorhandenen Technologien am besten zu erläutern oder um andere Fachleute zu befähigen, die hier offenbarten Ausführungsformen zu verstehen.