DE112012005037B4 - Verwalten von redundanten unveränderlichen Dateien unter Verwendung von Deduplizierungen in Speicher-Clouds - Google Patents
Verwalten von redundanten unveränderlichen Dateien unter Verwendung von Deduplizierungen in Speicher-Clouds Download PDFInfo
- Publication number
- DE112012005037B4 DE112012005037B4 DE112012005037.1T DE112012005037T DE112012005037B4 DE 112012005037 B4 DE112012005037 B4 DE 112012005037B4 DE 112012005037 T DE112012005037 T DE 112012005037T DE 112012005037 B4 DE112012005037 B4 DE 112012005037B4
- Authority
- DE
- Germany
- Prior art keywords
- file
- expiration date
- files
- master copy
- computer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/162—Delete operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1748—De-duplication implemented within the file system, e.g. based on file segments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Abstract
Description
- Technisches Gebiet
- Die vorliegende Erfindung betrifft allgemein Cloud-Computing und insbesondere Verfahren und Systeme zum Verwalten von redundanten, unveränderlichen Dateien unter Verwendung von Deduplizierungstechniken in Speicher-Clouds.
- Hintergrund
- Die Informationstechnologie verändert sich rasant und bildet jetzt eine unsichtbare Sphäre, die in zunehmendem Maße nahezu jeden Aspekt der Geschäftswelt und des Alltagslebens berührt. Ein neueres Computermodell unter der Bezeichnung Cloud-Computing geht auf die explosive Zunahme mit dem Internet verbundener Einheiten ein und stellt eine Ergänzung der zunehmenden Technologisierung in der modernen Welt dar. Cloud-Computing ist ein Servicemodell, um auf Anforderung einen komfortablen Netzwerkzugriff auf einen gemeinsam genutzten Pool konfigurierbarer Datenverarbeitungsressourcen (z.B. Netzwerke, Netzwerkbandbreite, Server, Verarbeitungseinheiten, Arbeitsspeicher, Massenspeicher, Anwendungen, virtuelle Maschinen und Dienste) anzubieten, die mit geringem Verwaltungsaufwand oder geringem Zusammenwirken mit einem Anbieter des Dienstes schnell bereitgestellt und freigegeben werden können.
- Cloud-Computing ist außerordentlich skalierbar, stellt eine exzellente Benutzererfahrung bereit und ist durch ein neues, Intemet-gestütztes Geschäftsmodell gekennzeichnet. Ein Aspekt des Cloud-Computing besteht darin, dass Speichern und das Verarbeiten von Unternehmensdaten innerhalb einer Cloud bereitgestellt werden, bei der es sich um ein Geflecht miteinander verbundener Rechenzentren, Datenverarbeitungseinheiten und Speichersysteme handelt, die weltweit verteilt sind.
- Mit dem Aufkommen des Cloud-Computing sind Konzepte wie Speicher-Clouds entstanden. Bei den Speicher-Clouds handelt es sich um ein riesiges Speichernetzwerk, das durch die Benutzer gemeinsam genutzt werden kann, ohne dass der Benutzer sich um die Speicherinfrastruktur zu kümmern braucht. Der Anbieter einer Speicher-Cloud verfügt für gewöhnlich über ein einziges großes Speichervolumen und bewahrt Daten von allen seinen Kunden an ein und demselben Ort auf, was zu dem Konzept der Multi-Tenant-Funktionalität und einer Multi-Tenant-Umgebung führt. Üblicherweise wird dieses Speichervolumen durch die gesamte Kundschaft auf dieser Cloud gemeinsam genutzt.
- Datendeduplizierung weist Prozesse zum Entfernen redundanter Daten auf. In einem Deduplizierungsprozess werden doppelt vorkommende Daten gelöscht, sodass nur noch ein Exemplar der zu speichernden Daten übrig bleibt. In bestimmten Fällen werden alle Daten weiterhin indexiert, falls diese Daten noch einmal benötigt werden sollten. Durch Deduplizierung kann die tatsächlich genutzte Speicherkapazität verringert werden, da nur einmal vorkommende Daten gespeichert werden. Datendeduplizierung kann generell auf Dateiebene oder auf Datenblockebene durchgeführt werden. Durch Deduplizierung auf Dateiebene werden doppelt vorkommende Dateien entfernt, jedoch stellt dies kein sehr wirksames Deduplizierungsmittel dar. Bei Blockdeduplizierung wird eine Datei durchsucht, und nur einmalige Vorkommen jedes Blocks oder Bits werden gespeichert. Jeder Datenblock wird unter Verwendung eines Hash-Algorithmus wie beispielsweise MD5 (Message-Digest Algorithm) oder SHA-1 (secure hash algorithm) verarbeitet. Durch diesen Prozess wird für jeden Datenblock eine eindeutige Zahl erzeugt, die dann in einem Index gespeichert wird. Wenn eine Datei aktualisiert wird, werden nur die geänderten Daten gespeichert. Das heißt, wenn nur einige wenige Bytes eines Dokuments oder einer Darstellung geändert werden, werden nur die geänderten Blöcke oder Bytes gespeichert, und die Änderungen stellen keine vollständig neue Datei dar. Deshalb wird durch Blockdeduplizierung mehr Speichervolumen als durch Dateideduplizierung eingespart.
- Viele Dateisysteme und Speichersysteme stellen Einrichtungen bereit, Dokumente und Dateien als unveränderbar zu kennzeichnen, d.h., der Inhalt der Dateien und/oder die Datei selbst kann während eines bestimmten Zeitraums nicht gelöscht oder geändert werden, bis ein anderes Kriterium erfüllt ist. Solche Anforderungen stammen in der Regel von gesetzlich regulierten Einrichtungen und Unternehmen wie beispielsweise Regierungseinrichtungen und dem Gesundheitswesen. Solche Einrichtungen und Unternehmen sind von der Telekommunikationsindustrie abhängig, um Vorschriften wie das Sarbanes-Oxley-Gesetz (SOX), das Gesetz für den Datenschutz im Gesundheitswesen (Health Insurance Portability and Accountability Act, HIPAA), die Standards des Bundesausschusses für Bankenaufsicht (Federal Financial Institutions Examination Council, FFIEC) usw. einzuhalten, die fordern, dass bestimmte Dateien unveränderlich bleiben müssen.
- Zum Beispiel müssen gemäß der HIPAA-Sicherheitsregel (z.B. dem Bereich technische Sicherheitsmaßnahmen) Sicherheitsprotokolle, in denen Vorfälle aufgezeichnet sind, sechs Jahre unverändert aufbewahrt werden. Das zeigt, dass jede als unveränderlich gekennzeichnete Datei (zumindest während des vorgegebenen Zeitraums) von hoher Bedeutung oder von entscheidendem Wert ist und deshalb unbedingt erhalten bleiben muss. Die Telekommunikationsunternehmen müssen die Einhaltung dieser Vorschriften garantieren, indem sie die Regeln zur Aufbewahrung der Verbindungsdaten wie beispielsweise Telefongespräche und gesendete Textnachrichten einhalten. Die Telekommunikationsunternehmen wiederum nutzen das ihrer Infrastruktur eigene Merkmal der unveränderlichen Dateien, um die Anforderungen an die Unveränderlichkeit der Verbindungsdaten für diese Vorschriften zu erfüllen. Dieses Merkmal wird auch in dem IBM® General Parallel File System™ (GPFS™) unterstützt, bei dem es sich um ein strategisch strukturiertes Dateisystem handelt, das in vielen Speicherangeboten und -lösungen angewendet wird. (IBM, General Parallel File System und GPFS sind Warenzeichen von International Business Machines Corporation, die in vielen Rechtssystemen weltweit eingetragen sind).
- Wenn Datendeduplizierungen auf der Dateiebene durchgeführt werden, werden die doppelt vorkommenden Kopien der Datei gelöscht und nur eine einzige Kopie aufbewahrt, und alle anderen Verweise sind auf diese einzige Kopie gerichtet. Dies steht jedoch im Widerspruch zur Grundvoraussetzung der Unveränderlichkeit, dass die Dateien nicht bearbeitet oder gelöscht werden können. Somit vermag der Deduplizierungsprozess keine redundanten Kopien unveränderlicher Dateien zu löschen. Wenn zum Beispiel unveränderliche Verbindungsdaten von Anrufen und Textnachrichten aufbewahrt werden müssen, an denen üblicherweise mehr als ein Teilnehmer beteiligt ist, bewahren die Telekommunikationsunternehmen in der Regel mehrere Kopien ein und derselben Datei auf, um die Anforderungen bezüglich der Unveränderlichkeit zu erfüllen, obwohl dadurch mehr Datenspeichervolumen in Anspruch genommen wird und der Verwaltungs- und Datenschutzaufwand steigen. Bei einem konkreten Beispiel einer Konferenzschaltung mit zehn Teilnehmern, deren Protokoll ein Speichervolumen von 1 GB in Anspruch nimmt, speichert das Telekommunikationsunternehmen dieselben Daten für jeden Teilnehmer und hält die Unveränderlichkeit für alle Dateien aufrecht, sodass insgesamt 10 GB Speichervolumen in Anspruch genommen werden. Wären die Dateien nicht unveränderlich, könnten mittels des Deduplizierungsprozesses neun Kopien der Datei gelöscht und nur eine einzige Kopie aufbewahrt werden, die ein Speichervolumen von lediglich 1 GB in Anspruch nimmt, sodass das tatsächlich genutzte Speichervolumen um 9 GB verringert wird. In bestimmten Fällen wird eine solche Deduplizierung durch das Merkmal der Unveränderlichkeit der Dateien verhindert.
- Folgende Dokumente sind aus dem Stand der Technik bekannt: das Dokument
US 2010/0332401 A1 US 2010/0064166 A1 US 2011/0138144 A1 - Somit besteht eine Aufgabe darin, ein Konzept vorzustellen, welches den bisherigen Widerspruch in dem bekannten System hinsichtlich einer Deduplizierung im Zusammenhang mit einer Löschung und Unveränderlichkeit von Dateien zu lösen.
- Kurzdarstellung
- Die oben genannte Aufgabe wird durch die Gegenstände der unabhängigen Ansprüche gelöst. Weitere Ausführungsbeispiele sind unter anderem durch die jeweils abhängigen Ansprüche gegeben.
- Figurenliste
- Die vorliegende Erfindung wird in der folgenden detaillierten Beschreibung unter Bezugnahme auf die folgenden Zeichnungen anhand von Beispielen beispielhafter Ausführungsformen der vorliegenden Erfindung beschrieben, die nicht als Einschränkung zu verstehen sind.
-
1 zeigt einen Cloud-Computing-Knoten gemäß Aspekten der vorliegenden Erfindung; -
2 zeigt eine Cloud-Computing-Umgebung gemäß Aspekten der vorliegenden Erfindung; -
3 zeigt Abstraktionsmodellschichten gemäß Aspekten der vorliegenden Erfindung; -
4 zeigt ein Blockschaltbild für die Datendeduplizierung; - die
5A und5B zeigen beispielhafte Deduplizierungsprozesse gemäß Aspekten der Erfindung; und -
6 zeigt einen beispielhaften Ablaufplan gemäß Aspekten der Erfindung. - Detaillierte Beschreibung
- Die vorliegende Erfindung betrifft allgemein Cloud-Computing und insbesondere Verfahren und Systeme zum Verwalten redundanter unveränderlicher Dateien unter Verwendung von Deduplizierungstechniken in Speicher-Clouds. Gemäß Aspekten der Erfindung werden Deduplizierungstechniken auf unveränderliche Dateien angewendet, um Einsparungen an Datenspeicherplatz zu erzielen und gleichzeitig die Vorgaben der Unveränderlichkeit einzuhalten. Gemäß Ausführungsformen wird in Fällen, in denen es mehrere redundante unveränderliche Dateien gibt, die Datei mit einem am weitesten in der Zukunft gelegenen Ablauftermin als Masterkopie festgelegt und gespeichert, während alle anderen redundanten Kopien auf die Masterkopie verwiesen und die Kopien selbst gelöscht werden. Auf diese Weise werden gemäß Ausführungsformen der Erfindung Einsparungen an Datenspeicherplatz infolge Deduplizierung durch Löschen redundanter Kopien von Dateien erreicht sowie Benutzern der Zugriff auf eine Kopie einer unveränderlichen Datei ermöglicht, die die Unveränderlichkeit einhalten müssen.
- Gemäß Aspekten der Erfindung sucht ein Deduplizierungsagent, wenn eine bestimmte Datei als unveränderlich gekennzeichnet ist, aktiv nach anderen Dateien, die in Bezug auf die unveränderliche Datei redundant sind. Wenn eine veränderliche (z.B. nicht unveränderliche) redundante Datei gefunden wird, löscht der Deduplizierungsagent die veränderliche Datei und erzeugt einen Verweis auf die unveränderliche Datei, die als Masterkopie gespeichert wird. Wenn eine unveränderliche redundante Datei gefunden wird, vergleicht der Deduplizierungsagent die Ablauftermine für die Unveränderlichkeit der mehreren unveränderlichen Dateien (z.B. der Originaldatei und der einen oder der mehreren durch den Deduplizierungsagenten gefundenen Dateien) und speichert die unveränderliche Datei mit dem spätesten Ablauftermin als Masterkopie. Der Deduplizierungsagent löscht alle anderen unveränderlichen redundanten Dateien und erzeugt einen Verweis dieser Dateien auf die Masterkopie.
- Gemäß Ausführungsformen behält der Deduplizierungsagent die Unveränderlichkeitsattribute (z.B. den Ablauftermin) jeder unveränderlichen Datei mittels eines bedingten Links bei. Zum Beispiel beinhaltet für eine bestimmte Datei, die gelöscht wurde und nun auf eine Masterkopie verweist, der bedingte Link der betreffenden Datei den Pfad (z.B. einen Zeiger) auf die Masterkopie sowie die Unveränderlichkeitsattribute (z.B. den Ablauftermin) der betreffenden Datei. Auf diese Weise bleiben die Unveränderlichkeitsattribute (z.B. der Ablauftermin) der gelöschten Datei erhalten, und der Eigentümer der gelöschten Kopie kann auf die Masterkopie zugreifen, obwohl die redundante Kopie der unveränderlichen Datei gelöscht ist. Demgemäß werden redundante Kopien der Masterkopie entfernt, ohne die Vorgaben der Unveränderlichkeit zu verletzen. Wenn die Unveränderlichkeitsdauer einer Masterkopie abläuft (z.B. wenn der Ablauftermin erreicht wird) und ein auf die Masterkopie verweisender bedingter Link einen späteren Ablauftermin aufweist, erhebt der Deduplizierungsagent darüber hinaus den bedingten Link in den Rang der Masterkopie und ändert die vorliegende Masterkopie in einen bedingten Link, der nun nicht mehr unveränderlich ist.
- Cloud-Computing
- Von vornherein sollte klar sein, dass diese Offenbarung zwar eine detaillierte Beschreibung über das Cloud-Computing enthält, die Umsetzung der hierin aufgeführten Lehren jedoch nicht auf eine Cloud-Computing-Umgebung beschränkt sind. Vielmehr können Ausführungsformen der vorliegenden Erfindung in Verbindung mit einem beliebigen anderen Typ von Datenverarbeitungsumgebung umgesetzt werden, der bereits bekannt ist oder in Zukunft entwickelt wird.
- Aus Gründen der Zweckmäßigkeit enthält die detaillierte Beschreibung die folgenden Definitionen, die dem Dokument „Draft NIST Working Definition of Cloud Computing“ von Peter Mell und Tim Grance, 7. Oktober
2009 , entnommen wurden, das in einem gleichzeitig eingereichten Datenblatt zitiert wird und als Kopie beigefügt ist. - Beim Cloud-Computing handelt es sich um ein Modell zur Lieferung von Diensten bei Bedarf, um einen unkomplizierten Netzwerkzugriff auf einen gemeinsam genutzten Pool konfigurierbarer Datenverarbeitungsressourcen (z.B. Netzwerke, Netzwerkbandbreite, Server, Verarbeitungseinheiten, Arbeitsspeicher, Massenspeicher, Anwendungen, virtuelle Maschinen und Dienste) zu ermöglichen, die mit geringem Verwaltungsaufwand oder ohne mit dem Anbieter eines Dienstes in Verbindung zu treten schnell bereitgestellt und freigegeben werden können. Dieses Cloud-Modell kann mindestens fünf Merkmale, mindestens drei Servicemodelle und mindestens vier Implementierungsmodelle beinhalten.
- Bei den Merkmalen handelt es sich um die folgenden:
- Selbstbedienung bei Bedarf: ein Benutzer der Cloud kann automatisch einseitig Datenverarbeitungsressourcen nach Bedarf zur Verfügung stellen, beispielsweise Serverzeit und Netzwerkspeicher, ohne selbst mit dem Dienstanbieter in Verbindung treten zu müssen.
- Umfassender Netzwerkzugriff: über ein Netzwerk sind Leistungsmerkmale verfügbar, auf die durch Standardmechanismen zugegriffen werden kann, welche die Verwendung durch heterogene Thin-Client- oder Thick-Client-Plattformen (z.B. Mobiltelefone, Laptop-Computer und PDAs) unterstützen.
- Zusammenfassung von Ressourcen: die Datenverarbeitungsressourcen des Anbieters werden zusammengefasst, um mehrere Benutzer unter Verwendung eines Multi-Tenant-Modells mit verschiedenen physischen und virtuellen Ressourcen zu versorgen, die nach Bedarf dynamisch zugewiesen und erneut zugewiesen werden. Die Idee der Standortunabhängigkeit besteht darin, dass der Benutzer im Allgemeinen den genauen Standort der bereitgestellten Ressourcen weder kennt noch beeinflussen, aber auf einer höheren Abstraktionsschicht einen bestimmten Standort (z.B. Land, Staat oder Rechenzentrum) angeben kann.
- Rasche Elastizität: Leistungsmerkmale können rasch und elastisch, in bestimmten Fällen auch automatisch, zur Verfügung gestellt werden, um sie schnell zu erweitern, und sie können rasch freigegeben werden, um sie rasch zu nutzen. Für den Benutzer scheinen die zur Verfügung vorhandenen Leistungsmerkmale oft unbegrenzt zu sein und können zu jedem Zeitpunkt und in jeder Menge käuflich erworben werden.
- Abrechenbare Dienstleistung: Cloud-Systeme steuern und optimieren die Nutzung von Ressourcen automatisch durch den Einsatz einer Abrechnungsfunktion auf einer bestimmten Abstraktionsschicht, die dem Typ der Dienstleistung (z.B. Speicherung, Verarbeitung, Bandbreite und aktive Benutzerkonten) angemessen ist. Die Nutzung der Ressourcen kann überwacht, gesteuert und dokumentiert werden, sodass sowohl für den Anbieter als auch für den Benutzer der genutzten Dienstleistung Transparenz herrscht.
- Bei den Servicemodellen handelt es sich um die folgenden:
- Software als Dienstleistung (Software as a Service, SaaS): das dem Benutzer bereitgestellte Leistungsmerkmal dient dazu, die auf einer Cloud-Infrastruktur ausgeführten Anwendungen des Anbieters zu nutzen. Auf die Anwendungen kann von verschiedenen Client-Einheiten über eine Thin-Client-Schnittstelle wie beispielsweise einen Web-Browser (z.B. Web-eMail) zugegriffen werden. Der Benutzer befasst sich nicht mit der Verwaltung oder der Steuerung der zugrunde liegenden Cloud-Infrastruktur, zu der ein Netzwerk, Server, Betriebssysteme, Speicher oder auch Leistungsmerkmale einzelner Anwendungen gehören, ausgenommen gegebenenfalls begrenzte benutzerspezifische Konfigurationseinstellungen von Anwendungen.
- Plattform als Dienstleistung (Platform as a Service, PaaS): das dem Benutzer bereitgestellte Leistungsmerkmal dient dazu, durch den Benutzer erstellte oder erworbene Anwendungen unter Verwendung von Programmiersprachen und Hilfsprogrammen, die durch den Anbieter unterstützt werden, auf der Infrastruktur bereitzustellen. Der Benutzer befasst sich nicht mit der Verwaltung oder der Steuerung der zugrunde liegenden Cloud-Infrastruktur, zu der Netzwerke, Server, Betriebssysteme oder Speicher gehören, kann aber die implementierten Anwendungen und gegebenenfalls Konfigurationen von Umgebungen steuern, in denen die Anwendungen ausgeführt werden.
- Infrastruktur als Dienstleistung (Infrastructure as a Service, laaS): das dem Benutzer bereitgestellte Leistungsmerkmal dient dazu, Verarbeitungskapazität, Speicher, Netzwerke und andere grundlegende Datenverarbeitungsressourcen zur Verfügung zustellen, mittels derer der Benutzer in der Lage ist, beliebige Software zu implementieren und auszuführen, wozu Betriebssysteme und Anwendungen gehören können. Der Benutzer befasst sich nicht mit der Verwaltung oder der Steuerung der zugrunde liegenden Cloud-Infrastruktur, kann jedoch Betriebssysteme, Speicher, installierte Anwendungen und gegebenenfalls in begrenztem Maße ausgewählte Netzwerkkomponenten (z.B. Host-Firewalls) steuern.
- Bei den Installationsmodellen handelt es sich um die folgenden:
- Private Cloud: die Cloud-Infrastruktur wird ausschließlich für eine Organisation betrieben. Sie kann durch die Organisation oder Dritte verwaltet werden und sich innerhalb oder außerhalb ihrer Räumlichkeiten befinden.
- Gemeinschafts-Cloud (Community Cloud): die Cloud-Infrastruktur wird durch mehrere Organisationen gemeinsam genutzt und unterstützt eine bestimmte Gemeinschaft mit gemeinsamen Interessen (z.B. Zielstellung, Sicherheitsanforderungen, Richtlinien und Konformitätsgrundsätze). Sie kann durch die Organisationen oder Dritte verwaltet werden und sich innerhalb oder außerhalb ihrer Räumlichkeiten befinden.
- Öffentliche Cloud: die Cloud-Infrastruktur wird der breiten Öffentlichkeit oder einer großen Industriegruppe zur Verfügung gestellt und gehört einer Organisation, die Cloud-Dienstleistungen kommerziell anbietet.
- Hybride Cloud: die Cloud-Infrastruktur besteht aus zwei oder mehr Clouds (privat, gemeinschaftlich oder öffentlich), die als individuelle Einheiten erhalten bleiben, aber durch eine standardisierte oder unternehmenseigene Technologie miteinander verbunden sind, die die Portabilität von Daten und Anwendungen gewährleistet (z.B. Blockbetrieb zwischen Clouds zum Lastausgleich zwischen Clouds).
- Eine Cloud-Datenverarbeitungsumgebung ist dienstleistungsorientiert unter besonderer Berücksichtigung der Statusunabhängigkeit, loser Kopplung, Modularität und semantischen Zusammenwirkens. Das Kernstück des Cloud-Computing stellt eine Infrastruktur dar, die ein Netzwerk miteinander verbundener Knoten aufweist.
-
1 zeigt nunmehr ein Schema eines Beispiels eines Cloud-Computing-Knotens. Der Cloud-Computing-Knoten10 stellt lediglich ein Beispiel für einen geeigneten Cloud-Computing-Knoten dar und ist nicht als Einschränkung des Schutzumfangs der Anwendung oder Funktionalität von Ausführungsformen der hierin beschriebenen Erfindung zu verstehen. Dennoch kann der Cloud-Computing-Knoten10 implementiert werden und/oder jede der oben dargelegten Funktionalitäten ausführen.1 kann auch eine Datenverarbeitungs-Infrastruktur zum Ausführen und/oder Umsetzen von Tasks und/oder Funktionen der hierin beschriebenen Verfahren darstellen. - In dem Cloud-Computing-Knoten
10 gibt es ein Computersystem/einen Server12 , der mit Umgebungen oder Konfigurationen zahlreicher anderer Universal- oder Spezial-Datenverarbeitungssysteme zusammenarbeiten kann. Zu Beispielen von allgemein bekannten Datenverarbeitungssystemen, Umgebungen und/oder Konfigurationen, die zur Verwendung mit dem Computersystem/Server12 geeignet sein können, gehören, ohne darauf beschränkt zu sein, Personal Computer-Systeme, Server-Computersysteme, Thin-Clients, Thick-Clients, tragbare oder Laptop-Einheiten, Multiprozessorsysteme, Systeme auf der Grundlage von Mikroprozessoren, Set-Top-Boxen, programmierbare Heimelektronik, Netzwerk-PCs, Großrechnersysteme und verteilte Cloud-Computing-Umgebungen, die eines der obigen Systeme oder Einheiten enthalten, und dergleichen. - Das Computersystem/der Server
12 kann allgemein in Verbindung mit durch das Computersystem ausführbaren Anweisungen wie beispielsweise durch ein Computersystem ausgeführte Programmmodule beschrieben werden. Im Allgemeinen können Programmmodule Routinen, Programme, Objekte, Komponenten, Logik, Datenstrukturen und so weiter enthalten, die bestimmte Tasks ausführen oder bestimmte abstrakte Datentypen darstellen. Das Computersystem/der Server12 können in verteilten Cloud-Computing-Umgebungen eingesetzt werden, wo Tasks auf fernen Verarbeitungseinheiten ausgeführt werden, die durch ein Datenübertragungsnetzwerk miteinander verbunden sind. In einer verteilten Cloud-Computing-Umgebung können sich Programmmodule sowohl in lokalen als auch in fernen Speichermedien, darunter auch flüchtige Speichereinheiten, befinden. -
1 zeigt ein Computersystem/einen Server12 in einem Cloud-Computing-Knoten10 in der Form einer Universal-Datenverarbeitungseinheit. Als Komponenten des Computersystems/des Servers12 kommen infrage, ohne darauf beschränkt zu sein, ein oder mehrere Prozessoren oder Verarbeitungseinheiten16 , ein Systemspeicher28 und ein Bus18 , der verschiedene Systemkomponenten, darunter den Systemspeicher28 , mit dem Prozessor16 verbindet. Gemäß Ausführungsformen weist das Computersystem/der Server12 einen Deduplizierungsagenten80 auf oder tauscht Daten mit diesem aus, was hierin ausführlich beschrieben wird. - Der Bus
18 stellt einen oder mehrere von verschiedenen Typen von Busstrukturen dar, darunter ein Speicherbus oder eine Speichersteuereinheit, ein peripherer Bus, ein beschleunigter Grafikanschluss und ein Prozessor- oder lokaler Bus unter Verwendung einer Vielfalt von Busarchitekturen. Als Beispiele, die jedoch nicht als Einschränkung zu verstehen sind, kommen für solche Architekturen der ISA- (Industry Standard Architecture) Bus, der MCA- (Micro Channel Architecture) Bus, der EISA- (Enhanced ISA) Bus, der lokale VESA- (Video Electronics Standards Association) Bus und der PCI- (Peripheral Component Interconnects) Bus infrage. - Das Computersystem/der Server
12 enthält üblicherweise eine Vielfalt durch das Computersystem lesbarer Medien. Bei solchen Medien kann es sich um beliebige verfügbare Medien handeln, auf die das Computersystem/der Server12 zugreifen kann, darunter sowohl flüchtige als auch nichtflüchtige Medien sowie austauschbare und nichtaustauschbare Medien. - Der Systemspeicher
28 kann durch das Computersystem lesbare Medien in der Form eines flüchtigen Speichers wie beispielsweise eines Direktzugriffsspeichers (RAM)30 und/oder eines Cachespeichers32 enthalten. Das Computersystem/der Server12 kann ferner weitere austauschbare/nichtaustauschbare, flüchtige/nichtflüchtige Speichermedien des Computersystems enthalten. Lediglich als Beispiel kann ein Speichersystem34 zum Lesen von und zum Schreiben auf ein (nicht gezeigtes und üblicherweise als „Festplattenlaufwerk“ bezeichnetes) nichtaustauschbares, nichtflüchtiges magnetisches Medium bereitgestellt werden. Ferner können ein nicht gezeigtes magnetisches Plattenlaufwerk zum Lesen von einer und zum Schreiben auf eine austauschbare, nichtflüchtige magnetische Platte (z.B. eine „Diskette“) und ein optisches Plattenlaufwerk zum Lesen von oder zum Schreiben auf eine austauschbare, nichtflüchtige optische Platte wie beispielsweise eine CD-ROM, DVD-ROM oder ein anderes optisches Medium bereitgestellt werden. In solchen Fällen kann jedes Medium durch eine oder mehrere Datenmedienschnittstellen mit dem Bus18 verbunden sein. Im Folgenden wird ein Speicher28 genauer gezeigt und beschrieben, der zumindest ein Programmprodukt mit einer Reihe von Programmmodulen (z.B. mindestens einem Programmmodul) enthalten kann, die so konfiguriert sind, dass sie die Funktionen von Ausführungsformen der Erfindung ausführen. - Beispielsweise können ein Programm/Dienstprogramm
40 mit einer Reihe von Programmmodulen (mindestens einem Programmmodul) 40 sowie ein Betriebssystem, ein oder mehrere Anwendungsprogramme, andere Programmmodule und Programmdaten in dem Speicher28 gespeichert sein, ohne auf diese beschränkt zu sein. Sowohl das Betriebssystem als auch das eine oder die mehreren Anwendungsprogramme, anderen Programmmodule und Programmdaten oder eine Kombination derselben können eine Implementierung einer Netzwerkumgebung beinhalten. Die Programmmodule42 führen im Allgemeinen die Funktionen und/oder Verfahrensweisen von Ausführungsformen der hierin beschriebenen Erfindung aus. Zum Beispiel können einige oder alle Funktionen des Deduplizierungsagenten80 als ein oder mehrere Programmmodule42 implementiert werden. Außerdem kann der Deduplizierungsagent80 in Form gesonderter spezialisierter Prozessoren oder eines einzelnen oder mehrerer Prozessoren implementiert werden, um die hierin beschriebene Funktionalität bereitzustellen. Gemäß Ausführungsformen führt der Deduplizierungsagent80 einen oder mehrere der hierin beschriebenen Prozesse aus, darunter, ohne darauf beschränkt zu sein: Empfangen einer Datei, die in einem gemeinsam genutzten Speicher als unveränderliche Datei gespeichert werden soll, oder Empfangen einer Meldung, dass die gegenwärtig in dem gemeinsam genutzten Speicher gespeicherte Datei als unveränderlich festgelegt werden soll; Suchen nach redundanten Kopien der Datei in dem Dateisystem; Löschen redundanter veränderlicher Kopien, die in dem Dateisystem gefunden wurden, und Verweisen dieser redundanten veränderlichen Kopien auf die unveränderliche Datei als Masterkopie; Vergleichen von in dem Dateisystem gefundenen unveränderlichen Kopien mit der unveränderlichen Datei, Speichern einer der Dateien als Masterkopie, Verweisen der anderen Dateien mittels eines bedingten Links auf die Masterkopie und Löschen der anderen Dateien. - Das Computersystem/der Server
12 kann auch Daten austauschen mit einer oder mehreren externen Einheiten14 wie beispielsweise einer Tastatur, einer Zeigereinheit, einem Bildschirm24 usw.; einer oder mehreren Einheiten, die einem Benutzer die Zusammenarbeit mit dem Computersystem/dem Server12 ermöglichen; und/oder beliebigen Einheiten (z.B. einer Netzwerkkarte, einem Modem usw.), die dem Computersystem/dem Server12 den Datenaustausch mit einer oder mehreren anderen Datenverarbeitungseinheiten ermöglichen. Eine solche Datenübertragung kann über Eingabe/Ausgabe- (E/A-) Schnittstellen22 erfolgen. Darüber hinaus kann das Computersystem/der Server12 Daten mit einem oder mehreren Netzwerken wie beispielsweise einem lokalen Netzwerk (LAN), einem allgemeinen Weitverkehrsnetzwerk (WAN) und/oder einem öffentlichen Netzwerk (z.B. dem Internet) über einen Netzwerkadapter20 austauschen. Der gezeigte Netzwerkadapter20 tauscht über den Bus18 Daten mit den anderen Komponenten des Computersystems/des Servers12 aus. Es sollte klar sein, dass in Verbindung mit dem Computersystem/dem Server12 auch noch weitere Hardware- und/oder Software-Komponenten verwendet werden können, obwohl dies nicht gezeigt ist. Als Beispiele kommen infrage, ohne darauf beschränkt zu sein: Mikrocode, Einheitentreiber, redundante Verarbeitungseinheiten, externe Plattenlaufwerkstapel, RAID- (redundante Reihe preisgünstiger Platten oder redundante Reihe unabhängiger Platten) Systeme, Bandlaufwerke und Speichersysteme für die Datenarchivierung usw. -
9 zeigt nunmehr eine anschauliche Cloud-Computing-Umgebung50 . Die gezeigte Cloud-Computing-Umgebung50 weist einen oder mehrere Cloud-Computing-Knoten10 auf, mit denen durch Cloud-Benutzer genutzte lokale Datenverarbeitungseinheiten wie beispielsweise ein persönlicher digitaler Assistent (PDA) oder ein Mobiltelefon54A , ein Arbeitsplatz-Computer54B , ein Laptop-Computer54C und/oder ein Fahrzeug-Computersystem54N Daten austauschen können. Die Knoten10 können Daten untereinander austauschen. Sie können (auf eine nicht gezeigte Weise) physisch oder virtuell in einem oder mehreren Netzwerken, beispielsweise privaten, öffentlichen oder hybriden Clouds, die oben beschrieben wurden, oder einer Kombination derselben zusammengefasst sein. Dadurch kann die Cloud-Computing-Umgebung50 Infrastrukturen, Plattformen und/oder Software als Dienstleistung anbieten, für die ein Cloud-Benutzer keine Ressourcen auf einer lokalen Datenverarbeitungseinheit vorzuhalten zu braucht. Es ist klar, dass die in9 gezeigten Typen von Datenverarbeitungseinheiten54A bis54N nur der Veranschaulichung dienen und dass die Datenverarbeitungsknoten10 und die Cloud-Computing-Umgebung50 mit einem beliebigen Typ von computergestützten Einheiten über einen beliebigen Typ von Netzwerk und/oder einer im Netzwerk adressierbaren Verbindung (z.B. unter Verwendung eines Web-Browsers) Daten austauschen können -
3 zeigt eine Reihe von funktionellen Abstraktionsschichten, die durch die Cloud-Computing-Umgebung50 (2 ) bereitgestellt werden. Von vornherein sollte klar sein, dass die in3 gezeigten Komponenten, Schichten und Funktionen nur zur Veranschaulichung dienen und Ausführungsformen der Erfindung nicht darauf beschränkt sind. Die Figur zeigt, dass die folgenden Schichten und entsprechenden Funktionen bereitgestellt werden: - Die Hardware- und Softwareschicht
60 enthält Hardware- und Softwarekomponenten. Als Beispiele von Hardwarekomponenten kommen Großrechner infrage, gemäß einem Beispiel Systeme vom Typ IBM® zSeries®; Server auf der Grundlage der RISC- (Reduced Instruction Set Computer) Architektur, gemäß einem Beispiel Systeme vom Typ IBM pSeries®; Systeme vom Typ IBM xSeries®; Systeme vom Typ IBM BladeCenter®; Speichereinheiten; Netzwerke und Netzwerkkomponenten. Als Beispiele von Softwarekomponenten kommt Netzwerk-Software für Anwendungs-Server infrage, bei einem Beispiel Software für Anwendungs-Server vom Typ IBM WebSphere®; und Datenbank-Software, bei einem Beispiel Datenbank-Software vom Typ IBM DB2®. (IBM, zSeries, pSeries, xSeries, BladeCenter, WebSphere und DB2 sind Warenzeichen von International Business Machines Corporation, die weltweit in vielen Rechtssystemen eingetragen sind). - Die Virtualisierungsschicht
62 stellt eine Abstraktionsschicht bereit, auf der die folgenden Beispiele von virtuellen Einheiten bereitgestellt werden können: virtuelle Server; virtuelle Speicher; virtuelle Netzwerke, darunter virtuelle private Netzwerke; virtuelle Anwendungen und Betriebssysteme; und virtuelle Clients. - Gemäß einem Beispiel kann die Verwaltungsschicht
64 die im Folgenden beschriebenen Funktionen bereitstellen. Durch das Beschaffen von Ressourcen werden dynamische Datenverarbeitungsressourcen und weiteren Ressourcen bereitgestellt, die zum Ausführen von Tasks innerhalb der Cloud-Computing-Umgebung genutzt werden. Das Messen der Inanspruchnahme und die Preisgestaltung sorgen für die Kostenkontrolle, wenn Ressourcen innerhalb der Cloud-Computing-Umgebung genutzt werden, und die Abrechnung oder Rechnungsstellung erfasst die Inanspruchnahme dieser Ressourcen. Gemäß einem Beispiel können diese Ressourcen Lizenzen für Anwendungs-Software aufweisen. Durch Sicherheitsmaßnahmen wird gewährleistet, dass die Identität von Cloud-Benutzern und Tasks geprüft sowie Daten und andere Ressourcen geschützt werden. Ein Benutzerportal stellt für Benutzer und Systemadministratoren den Zugriff auf die Cloud-Computing-Umgebung bereit. Das Dienstgüte-Management sorgt für ein Zuordnen und Verwalten von Cloud-Computing-Ressourcen, so dass die geforderte Dienstgüte erzielt wird. Ein Planen und Erfüllen der Dienstgüte-Vereinbarung (Service Level Agreement - SLA) sorgen für Vorbereitung und Beschaffung von Cloud-Computing-Ressourcen, für die gemäß einem SLA zukünftig ein Bedarf zu erwarten ist. - Die Arbeitslastschicht
66 stellt Beispiele von Funktionalitäten bereit, für welche die Cloud-Computing-Umgebung genutzt werden kann. Als Beispiele für Arbeitslasten und Funktionen, die auf dieser Schicht bereitgestellt werden können, kommen infrage: Zuordnung und Navigation; Software-Entwicklung und Lebenszyklusverwaltung; Bildungsangebote im virtuellen Klassenzimmer; Datenanalyse; Transaktionsverarbeitung; und Deduplizierung. Gemäß Aspekten der Erfindung dient die Deduplizierungs/Arbeitslastfunktion zum Ausführen eines oder mehrerer hierin beschriebener Prozesse, darunter, ohne darauf beschränkt zu sein: Empfangen einer Datei, die in einem gemeinsam genutzten Speicher als unveränderliche Datei gespeichert werden soll, oder Empfangen einer Meldung, dass die gegenwärtig in dem gemeinsam genutzten Speicher gespeicherte Datei als unveränderliche Datei festgelegt werden soll; Suchen nach redundanten Kopien der Datei in dem Dateisystem; Löschen in dem Dateisystem gefundener redundanter veränderlicher Kopien und Verweisen dieser redundanten veränderlichen Kopien auf die unveränderliche Datei als Masterkopie; Vergleichen in dem Dateisystem gefundener redundanter unveränderlicher Kopien mit der unveränderlichen Datei, Speichern einer der Dateien als Masterkopie, Verweisen der anderen Dateien auf durch einen bedingten Link auf die Masterkopie und Löschen der anderen Dateien. - Dem Fachmann ist einsichtig, dass Aspekte der vorliegenden Erfindung, darunter der Deduplizierungsagent
80 und die darin bereitgestellte Funktionalität, als System, Verfahren oder Computerprogrammprodukt umgesetzt werden können. Demgemäß können Aspekte der vorliegenden Erfindung die Form einer kompletten Hardware-Ausführungsform, einer kompletten Software-Ausführungsform (darunter Firmware, residente Software, Mikrocode usw.) oder einer Ausführungsform annehmen, die Software- und Hardware-Aspekte in sich vereint, die hierin im Allgemeinen sämtlich als „Schaltung“, „Modul“ oder „System“ bezeichnet werden können. Darüber hinaus können Aspekte der vorliegenden Erfindung die Form eines Computerprogrammprodukts annehmen, das in einem oder mehrere computerlesbaren Medien mit einem darauf gespeicherten computerlesbaren Programmcode verkörpert ist. - Es kann eine beliebige Kombination von einem oder mehreren computerlesbaren Medien verwendet werden. Bei dem computerlesbaren Medium kann es sich um ein computerlesbares Signalmedium oder um ein computerlesbares Speichermedium handeln. Bei einem computerlesbaren Speichermedium kann es sich zum Beispiel, ohne darauf beschränkt zu sein, um ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleitersystem, eine entsprechende Vorrichtung oder Einheit oder eine beliebige geeignete Kombination derselben handeln. Im Einzelnen kommen als Beispiele (eine nicht erschöpfende Aufzählung) des computerlesbaren Speichermediums die folgenden infrage: eine elektrische Verbindung mit einer oder mehreren Leitungen, eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM oder Flash-Speicher), ein Lichtwellenleiter, ein tragbarer Compact Disc-Nur-Lese-Speicher (CD-ROM), eine optische Speichereinheit, eine magnetischen Speichereinheit oder eine beliebige geeignete Kombination derselben. In Verbindung mit diesem Dokument kann es sich bei einem computerlesbaren Speichermedium um ein beliebiges materielles Medium handeln, das ein Programm zur Verwendung durch oder in Verbindung einem System, einer Vorrichtung oder Einheit zum Ausführen von Anweisungen enthalten oder speichern kann.
- Ein computerlesbares Signalmedium kann ein sich ausbreitendes Datensignal mit einem darin verkörperten computerlesbaren Programmcode enthalten, zum Beispiel im Basisband oder als Teil einer Trägerwelle. Ein solches sich ausbreitendes Signal kann eine Vielfalt an Formen annehmen, darunter, ohne darauf beschränkt zu sein, elektromagnetisch, optisch oder eine beliebige geeignete Kombination derselben. Bei einem computerlesbaren Signalmedium kann es sich um ein beliebiges geeignetes computerlesbares Medium handeln, das kein computerlesbares Speichermedium ist und das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder Einheit zum Ausführen von Anweisungen übertragen, weiterleiten oder transportieren kann.
- Ein auf einem computerlesbaren Medium verkörperter Programmcode kann unter Verwendung eines beliebigen geeigneten Medium übertragen werden, darunter, ohne darauf beschränkt zu sein, drahtlos, leitungsgebunden, Lichtwellenleiter, HF usw. oder eine beliebige geeignete Kombination derselben.
- Ein Computer-Programmcode zum Ausführen von Operationen für Aspekte der vorliegenden Erfindung kann in einer beliebigen Kombination einer oder mehrerer Programmiersprachen geschrieben sein, darunter eine objektorientierte Programmiersprache wie beispielsweise Java, Smalltalk, C++ oder dergleichen und herkömmliche prozedurale Programmiersprachen wie beispielsweise die Programmiersprache „C“ oder ähnliche Programmiersprachen. Der Programmcode kann komplett auf dem Computer eines Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder komplett auf dem fernen Computer oder Server ausgeführt werden. In dem letzteren Szenario kann der ferne Computer durch einen beliebigen Typ von Netzwerk mit dem Computer des Benutzers verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetzwerk (WAN), oder die Verbindung kann zu einem externen Computer hergestellt werden (zum Beispiel durch das Internet unter Verwendung eines Internet-Anbieters).
- Aspekte der vorliegenden Erfindung werden im Folgenden unter Bezugnahme auf Ablaufpläne und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es ist klar, dass jeder Block der Ablaufpläne und/oder Blockschaubilder und Kombinationen von Blöcken in den Ablaufplänen und/oder Blockschaubildern durch Computer-Programmanweisungen umgesetzt werden können. Diese Computer-Programmanweisungen können einem Prozessor eines Universal-Computers, eines Spezial-Computers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung zugeführt werden, um eine Maschine derart zu erzeugen, dass die durch den Prozessor des Computers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zum Umsetzen der in dem Block oder den Blöcken des Ablaufplans und/oder Blockschaubildes angegebenen Funktionen/Aktionen erzeugen.
- Diese Computer-Programmanweisungen können auch in einem computerlesbaren Medium gespeichert sein, das einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten veranlassen kann, in einer bestimmten Weise zu funktionieren, sodass die in dem computerlesbaren Medium gespeicherten Anweisungen einen Herstellungsgegenstand erzeugen, der Anweisungen zum Umsetzen der in dem Block oder den Blöcken des Ablaufplans und/oder Blockschaubildes angegebenen Funktionen/Aktionen enthält.
- Die Computer-Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten geladen werden, um eine Folge auf dem Computer, einer anderen programmierbaren Vorrichtung oder anderen Einheiten auszuführender Arbeitsschritte zu veranlassen, um einen computergestützten Prozess derart zu erzeugen, dass die auf dem Computer oder einer anderen programmierbaren Vorrichtung Prozesse zum Umsetzen der in dem Block oder den Blöcken des Ablaufplans und/oder Blockschaubildes angegebenen Funktionen/Aktionen bereitstellen.
-
4 zeigt ein Deduplizierungs-Blockschaltbild gemäß Aspekten der Erfindung. Gemäß Ausführungsformen fließen Daten in der Form einer unveränderlichen Datei75 von einer lokalen Datenverarbeitungseinheit54 zu einem Deduplizierungssystem, das einen Datenverarbeitungsknoten10 und einen Deduplizierungsagenten80 aufweist. Hierbei kann der Benutzer der lokalen Datenverarbeitungseinheit54 zum Beispiel anfordern (oder anweisen), dass die Datei75 in dem gemeinsam genutzten Speicher90 als unveränderliche Datei gespeichert werden soll, oder anweisen, dass die gegenwärtig in dem gemeinsam genutzten Speicher90 gespeicherte Datei75 als unveränderlich gekennzeichnet wird. Bei der lokalen Datenverarbeitungseinheit54 kann es sich um eine der vielen oben unter Bezugnahme auf2 beschriebenen lokalen Datenverarbeitungseinheiten54A bis N handeln. Bei dem gemeinsam genutzten Speicher90 kann es sich zum Beispiel um ein oder mehrere Datenspeicherelemente handeln, die in einem oder mehreren Knoten in einer Cloud-Umgebung wie beispielsweise der in2 gezeigten Cloud-Umgebung50 enthalten sind. - In einem Datei-Deduplizierungsprozess unterwirft der Deduplizierungsagent
80 die Datei75 einem Hash-Algorithmus, der für jede Datei75 einen eindeutigen Hash-Wert erzeugt. Der Deduplizierungsagent80 vergleicht den eindeutigen Hash-Wert für die Datei mit den Hash-Werten anderer bereits im Speicher90 gespeicherter Dateien. Die Hash-Werte der anderen Dateien können in dem Speicher90 und/oder in einer Deduplizierungs-Datenblock85 gespeichert sein, die Informationen über deduplizierte Dateien in dem System enthält. Der Deduplizierungsagent80 ermittelt redundante Dateien durch Vergleichen der verschiedenen Hash-Werte und Erkennen übereinstimmender Hash-Werte. - Gemäß weiteren Ausführungsformen stellen das Vergleichen und Finden von Übereinstimmungen mittels Hash-Werten einen ersten Schritt zum Ermitteln von Redundanz dar. Bei solchen weiteren Ausführungsformen wird davon ausgegangen, dass es sich bei Dateien mit übereinstimmenden Hash-Werten um mögliche (z.B. potenziell) redundante Kopien handelt. In einem zweiten Schritt zur Bestätigung der Redundanz führt der Deduplizierungsagent
80 einen Dateiunterscheidungsprozess zwischen den möglichen redundanten Kopien aus, um mit größerer Sicherheit feststellen zu können, dass die Kopien identisch sind. Mittels des Dateiunterscheidungsprozesses werden nicht die Hash-Werte, sondern die eigentlichen Inhalte der Dateien miteinander verglichen. Auf diese Weise kann der Deduplizierungsagent80 zusätzlich einen Dateiunterscheidungsprozess ausführen, um tatsächlich redundante Kopien zu erkennen, z.B. Dateien im Speicher90 , die mit der Datei75 identisch sind. - Das Vergleichen von Hash-Werten und das wahlweise Ausführen eines Dateiunterscheidungsprozesses stellen beispielhafte Verfahren zum Ermitteln redundanter Dateien dar. Die Erfindung ist jedoch nicht auf diese Verfahren beschränkt, und innerhalb des Schutzumfangs kann ein beliebiger geeigneter Vergleichsprozess zum Erkennen im Speicher
90 gespeicherter Dateien verwendet werden, die mit der Datei75 identisch sind. - Wenn der Deduplizierungsagent
80 im Speicher90 keine Dateien findet, die in Bezug auf die Datei75 redundant sind, speichert der Deduplizierungsagent80 gemäß Aspekten der Erfindung die Datei75 im Speicher90 und sichert die Unveränderlichkeitsattribute der Datei75 in dem der Datei zugehörigen I-Knoten. Wenn der Deduplizierungsagent80 hingegen eine Datei im Speicher90 findet, die in Bezug auf die Datei75 redundant ist, wendet der Deduplizierungsagent80 in Abhängigkeit davon, ob die gefundenen Kopien der Datei veränderbar oder unveränderlich sind, einen Deduplizierungsprozess an, was unter Bezugnahme auf die5A und5B ausführlich beschrieben wird. -
5A zeigt einen Deduplizierungsprozess gemäß Aspekten der Erfindung, wenn die Datei75 unveränderlich ist und der Agent (z.B. der in4 beschriebene Agent80 ) im Speicher90 eine oder mehrere veränderliche redundante Dateien100 findet. In diesem Fall ist die gefundene redundante Datei100 veränderlich, worunter zu verstehen ist, das diese Datei100 uneingeschränkt gelöscht, verändert usw. werden kann. Daraufhin speichert der Agent die Datei75 im Speicher90 und legt die Datei75 als Masterkopie fest. Der Agent löscht die Datei100 aus dem Speicher90 und erzeugt einen bedingten Link105 , der auf die Masterkopie, z.B. auf die Datei75 , verweist. Bei dem bedingten Link105 kann es sich um eine Datenstruktur handeln, die an einer beliebigen geeigneten Stelle im Dateisystem gespeichert sein kann, darunter, ohne darauf beschränkt zu sein, im Speicher90 , in einer Deduplizierungs-Datenbank (z.B. der in4 beschriebenen Datenbank85 ), als Teil eines I-Knotens oder an einer anderen Stelle in dem Dateisystem. - Ebenfalls Bezug nehmend auf
5A kann der Agent mehr als eine im Speicher90 gespeicherte veränderliche redundante Datei100 erkennen. In solchen Fällen wird jede einzelne der mehreren veränderlichen Dateien100 aus dem Speicher90 gelöscht und durch einen entsprechenden bedingten Link105 ersetzt, der auf die Datei75 (z.B. die im Speicher90 gespeicherte Masterkopie) verweist. - Weiterhin kann die unveränderliche Datei
75 einen Ablauftermin „A“ aufweisen. Die Datei75 kann zum Ablauftermin oder danach gelöscht oder verändert werden, und in diesem Fall unterstützt der Agent den bedingten Link105 zur Masterkopie im Speicher90 . Wenn es mehrere bedingte Links105 gibt, die auf die Datei75 verweisen, wenn die Datei75 nach dem Ablauftermin verändert oder gelöscht wird, unterstützt der Agent einen der bedingten Links105 zu einer neuen Masterkopie und aktualisiert die übrige Vielzahl der bedingten Links105 , damit diese auf die neue Masterkopie verweisen. - Wenn der Eigentümer der veränderlichen Datei
100 die Datei nach dem Erzeugen des bedingten Links105 löscht, löscht der Agent den bedingten Link105 und sichert gleichzeitig die im Speicher90 gespeicherte Masterkopie der Datei75 . Wenn der Eigentümer der veränderlichen Datei100 die Datei nach dem Erzeugen des bedingten Links105 aktualisiert, führt der Agent einen herkömmlichen Deduplizierungsprozess aus, bei dem eine neue Kopie der Masterdatei erzeugt wird, die Benutzeränderungen an der neuen Kopie empfangen werden und die neue Kopie als neue Datei (z.B. durch Erstellen einer Kopie beim Schreiben) gespeichert wird. -
5B zeigt einen Deduplizierungsprozess gemäß Aspekten der Erfindung, wenn die Datei75 unveränderlich ist und der Agent (z.B. der in4 beschriebene Agent80 ) im Speicher90 eine oder mehrere unveränderliche redundante Dateien110 findet. Bei dem in5B gezeigten Beispiel weist die Datei75 einen Ablauftermin „A“ für die Unveränderlichkeit und die Datei110 einen Ablauftermin „B“ für die Unveränderlichkeit auf. Wenn A größer als B ist (z.B. wenn die Datei75 zukünftig länger unveränderlich ist als die Datei110 ), wird die Datei75 als Masterkopie im Speicher90 gespeichert und die Datei110 gelöscht und durch einen bedingten Link115 ersetzt, der auf die Masterkopie verweist. Wenn B hingegen größer als A ist (z.B. wenn die Datei110 zukünftig länger unveränderlich ist als die Datei75 ), wird die Datei110 als Masterkopie im Speicher90 gespeichert, und die Datei75 wird gelöscht und durch einen bedingten Link115' ersetzt, der auf die Masterkopie verweist. In beiden Fällen (A>B oder B>A) wird eine Datei als Masterkopie im Speicher90 gespeichert und die andere Datei gelöscht und durch einen bedingten Link ersetzt, der auf die Masterkopie verweist. Darüber hinaus enthält der bedingte Link (z.B. der bedingte Link115 oder115' ), der die gelöschte Datei ersetzt, den Ablauftermin für die Unveränderlichkeit der gelöschten Datei sowie Daten, die den Pfad (z.B. Verweis) zur Masterkopie definieren. - Die in
5B gezeigten Prozesse können ausgeführt werden, wenn der Agent mehr als eine Datei110 erkennt, die zu der Datei75 redundant sind. In einem solchen Fall ermittelt der Agent, für welche Datei aller Dateien75 und110 der Ablauftermin am weitesten in der Zukunft liegt und unterstützt und speichert diese eine Datei als Masterkopie im Speicher90 . Die übrigen Dateien werden wie oben beschrieben gelöscht und durch bedingte Links115 und/oder115' ersetzt. - Wenn einer der bedingten Links zeitlich vor der Masterkopie abläuft, löscht der Agent gemäß Ausführungsformen den betreffenden bedingten Link oder macht aus ihm einen veränderlichen bedingten Link und lässt gleichzeitig die gespeicherte Masterkopie und alle anderen bedingten Links unverändert. Wenn hingegen die Masterkopie abläuft, analysiert der Agent die Ablauftermine aller bedingten Links, die auf die Masterdatei verweisen, um zu ermitteln, ob einer der bedingten Links einen Ablauftermin in der Zukunft aufweist (dazu kann es zum Beispiel kommen, wenn ein bedingter Link so verändert wird, dass sein Ablauftermin auf einen Termin nach dem Ablauftermin der Masterkopie fällt). Wenn keine bedingten Links einen späteren Ablauftermin aufweisen, können die Masterkopie und alle bedingten Links gelöscht oder veränderlich gemacht werden. Wenn nur ein bedingter Link einen späteren Ablauftermin aufweist, wird dieser bedingte Link für die Masterkopie unterstützt, und die vorhergehende Masterkopie und alle anderen bedingten Links werden gelöscht oder veränderlich gemacht. Wenn mehrere bedingte Links einen späteren Ablauftermin aufweisen, wird der bedingte Link mit dem spätesten Ablauftermin für die Masterkopie unterstützt, werden die anderen bedingten Links mit einem in der Zukunft liegenden Ablauftermin geändert, um auf die neue Masterkopie zu verweisen, und die vorhergehende Masterkopie und alle anderen bedingten Links, deren Ablauftermin abgelaufen ist, werden gelöscht oder veränderlich gemacht.
- Der bedingte Link (z.B. der Link
105 ,115 oder115' ) ist nicht auf das Speichern von Informationen zur Unveränderlichkeit in Form eines Ablauftermins beschränkt, sondern innerhalb des Schutzumfangs der Erfindung können alternative oder zusätzliche Informationen zur Unveränderlichkeit in dem bedingten Link gespeichert sein. Darüber hinaus kann das Ermitteln, welche Datei unterstützt und als Masterkopie gespeichert werden soll und welche Datei(en) gelöscht und durch einen bedingten Link ersetzt werden sollen, auf anderen Informationen zur Unveränderlichkeit als auf einem Ablauftermin beruhen. - Ablaufplan
-
6 zeigt einen beispielhaften Ablaufplan zum Ausführen von Aspekten der vorliegenden Erfindung. Die Schritte von6 können zum Beispiel in einer der Umgebungen von1 bis4 umgesetzt werden. - Der Ablaufplan und die Blockschaltbilder in den Figuren veranschaulichen die Architektur, die Funktionalität und die Arbeitsweise möglicher Implementierungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. Demgemäß kann jeder Block in dem Ablaufplan oder in den Blockschaltbildern ein Modul, ein Segment oder ein Codeabschnitt darstellen, der eine oder mehrere ausführbare Anweisungen zum Umsetzen der angegebenen Logikfunktion(en) aufweist. Zu beachten ist, dass gemäß bestimmten alternativen Implementierungen die in dem Block angegebenen Funktionen in einer von den Figuren abweichenden Reihenfolge ausgeführt werden können. Zum Beispiel können zwei nacheinander gezeigte Blöcke je nach vorgesehener Funktionalität in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können mitunter in der umgekehrten Reihenfolge ausgeführt werden. Ferner wird darauf hingewiesen, dass jeder Block der Blockschaltbilder und/oder des Ablaufplans und Kombinationen von Blöcken in dem Blockschaltbildern durch spezielle Hardwaresysteme, die die angegebenen Funktionen oder Aktionen ausführen, oder Kombinationen von spezieller Hardware und Computeranweisungen umgesetzt werden können.
- Außerdem kann die Erfindung die Form eines Computerprogrammprodukts annehmen, auf das von einem durch Computer nutzbaren oder computerlesbaren Medium zugegriffen werden kann, das einen Programmcode zur Verwendung durch oder in Verbindung mit einem Computer oder einem beliebigen System zum Ausführen von Anweisungen bereitstellt. Die Software und/oder das Computerprogrammprodukt können in der Umgebung der
1 bis4 umgesetzt werden. Im Rahmen dieser Beschreibung kann es sich bei einem durch Computer nutzbaren oder computerlesbaren Medium um eine Vorrichtung handeln, die das Programm zur Verwendung durch oder in Verbindung mit dem System, der Vorrichtung oder Einheit zum Ausführen von Anweisungen enthalten, speichern, übertragen, ausbreiten oder transportieren kann. Bei dem Medium kann es sich um ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleitersystem (oder eine entsprechende Vorrichtung oder Einheit) oder ein Ausbreitungsmedium handeln. Als Beispiele eines computerlesbaren Speichermediums kommen ein Halbleiterspeicher, ein Magnetband, eine austauschbare Computerdiskette, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), eine starre Magnetplatte und eine optische Speicherplatte infrage. Aktuelle Beispiele von optischen Speicherplatten betreffen einen Compact Disc-Nur-Lese-Speicher (CD-ROM), einen Compact Disc-Lese/Schreibspeicher (CD-R/W) und eine DVD. -
6 zeigt einen beispielhaften Ablaufplan für einen Deduplizierungsprozess gemäß Aspekten der vorliegenden Erfindung. In Schritt610 empfängt ein Deduplizierungssystem (z.B. eine Datenverarbeitungseinheit, die den Deduplizierungsagenten80 ausführt) eine Eingabe von einem Benutzer (z.B. von der lokalen Datenverarbeitungseinheit54 ), wobei die Eingabe eine Meldung aufweist, dass eine Datei als unveränderlich festgelegt werden soll. Die Benutzereingabe kann eine Meldung aufweisen, dass die Datei von der lokalen Datenverarbeitungseinheit mit einer Anweisung zum Speichern der Datei als unveränderliche Datei in einem gemeinsam genutzten Speicher (z.B. im Speicher90 ) an das Deduplizierungssystem gesendet werden soll. Alternativ kann die Benutzereingabe eine Kennzeichnung einer bereits gespeicherten Datei (z.B. einer bereits im Speicher90 gespeicherten Datei) und eine Anweisung zum Kennzeichnen der Datei als unveränderliche Datei aufweisen. - In Schritt
615 sucht das Deduplizierungssystem nach redundanten Kopien der aktuell in dem Dateisystem (z.B. im Speicher90 ) gespeicherten Datei. Gemäß Ausführungsformen erfolgt dies in der unter Bezugnahme auf4 beschriebenen Weise. Zum Beispiel kann ein Deduplizierungsagent des Deduplizierungssystems einen Hash-Wert für die Datei (z.B. die Datei von Schritt610 ) erzeugen und diesen Hash-Wert mit den Hash-Werten in dem Dateisystem gespeicherter Daten vergleichen. Übereinstimmende Hash-Werte zeigen redundante Kopien von Dateien an. Wahlweise kann der Deduplizierungsagent zusätzlich oder alternativ einen Dateiunterscheidungsprozess mit möglichen (z.B. potenziell) redundanten Dateien ausführen, um mit größerer Sicherheit feststellen zu können, dass in Schritt615 gefundene Dateien mit der Datei von Schritt610 identisch sind. - In Schritt
620 ermittelt das Deduplizierungssystem, ob redundante Kopien gefunden werden, z.B. unter Verwendung der Ergebnisse des Suchens und Vergleichens von Schritt615 . Wenn keine redundanten Kopien gefunden werden, speichert das Deduplizierungssystem in Schritt625 die Datei (von Schritt610 ) und die ihr zugehörige Information zur Unveränderlichkeit in dem Dateisystem (z.B. im Speicher90 ) und/oder aktualisiert alle neuen der Datei zugehörigen und in Schritt610 empfangenen Informationen zur Unveränderlichkeit. Wenn in den Schritten615 und620 hingegen redundante Kopien gefunden werden, geht der Prozess weiter zu Schritt630 , wo das Deduplizierungssystem ermittelt, ob die redundanten Kopien veränderlich oder unveränderlich sind. Gemäß Ausführungsformen erfolgt die Ermittlung, ob eine bestimmte Datei unveränderlich oder veränderlich ist, durch Prüfen der Attribute der betreffenden Datei auf herkömmliche Weise. - Wenn in Schritt
630 festgestellt wird, dass eine oder mehrere redundante Kopien veränderlich sind, wird die unveränderliche Datei (von Schritt610 ) in Schritt635 als Masterkopie in dem gemeinsam genutzten Speicher gespeichert und werden alle veränderlichen redundanten Kopien gelöscht und durch einen bedingten Link ersetzt, der auf die Masterkopie verweist. Gemäß Ausführungsformen weist der Schritt635 Speichern der unveränderlichen Datei als Masterkopie, Aktualisieren einer Information zur Unveränderlichkeit der Masterdatei und Ändern veränderlicher redundanter Kopien auf, damit diese auf die Masterkopie verweisen. Dies kann in derselben Weise wie oben unter Bezugnahme auf5A beschrieben erfolgen. - Wenn in Schritt
630 hingegen festgestellt wird, dass eine oder mehrere redundante Kopien unveränderlich sind, ermittelt das Deduplizierungssystem in Schritt640 , welche von allen Dateien (z.B. der Datei von Schritt610 der in Schritt615 gefundenen redundanten Dateien) den spätesten Ablauftermin (z.B. den am weitesten Identität der Zukunft liegenden Ablauftermin der Unveränderlichkeit) aufweist. Die Datei mit dem spätesten Ablauftermin wird als Masterkopie in dem gemeinsam genutzten Speicher gespeichert, und alle anderen Dateien aus der Gruppe, die aus der Datei von Schritt610 und den redundanten Dateien von den Schritten615 und620 besteht, mit Ausnahme der als Masterkopie gespeicherten Datei werden gelöscht und durch einen bedingten Link ersetzt, der auf die Masterkopie verweist. Gemäß Ausführungsformen weist der Schritt640 auf: Ermitteln, welche unveränderliche Datei den spätesten Ablauftermin aufweist, Speichern der unveränderlichen Datei mit dem spätesten Ablauftermin als Masterkopie, Ersetzen der redundanten Dateien durch einen bedingten Link, der auf die Masterkopie verweist, und Speichern der Information zur Unveränderlichkeit in dem bedingten Link auf. Dies kann in derselben Weise wie oben unter Bezugnahme auf5B beschrieben erfolgen. - Möglicherweise findet das Deduplizierungssystem in Schritt
615 eine Vielzahl redundanter Dateien, von denen einige veränderlich und einige unveränderlich sind. In einem solchen Fall dedupliziert das Deduplizierungssystem die veränderlichen Dateien wie in Schritt635 beschrieben und dedupliziert getrennt davon die unveränderlichen Dateien wie in Schritt640 beschrieben. - Gemäß Ausführungsformen kann ein Dienstanbieter wie beispielsweise ein Systemintegrator die hierin beschriebenen Prozesse anbieten. In diesem Fall kann der Dienstanbieter die Computer-Infrastruktur für einen oder mehrere Benutzer erzeugen, warten, implementieren, unterstützen usw., die die Prozessschritte der Erfindung ausführt. Bei diesen Benutzern kann es sich zum Beispiel um ein beliebiges Unternehmen handeln, das eine Technologie verwendet und Dienste bereitstellt oder nutzt. Der Dienstanbieter wiederum kann Zahlungen auf der Grundlage von Abonnements und/oder Gebührenverträgen von dem/den Benutzer(n) einnehmen, und/oder der Dienstanbieter kann Zahlungen aus dem Verkauf von Werbeinhalten an eine oder mehrere dritte Parteien einnehmen.
Claims (21)
- Verfahren zum Deduplizieren von Dateien, das in einer Computer-Infrastruktur implementiert ist, die eine Kombination von Hardware und Software aufweist, wobei das Verfahren aufweist: Empfangen einer Anforderung zum Speichern einer ersten Datei als unveränderliche Datei; Suchen nach einer zweiten Datei, die gespeichert und in Bezug auf die erste Datei redundant ist; Ermitteln, ob die zweite Datei veränderlich oder unveränderlich ist; Speichern der ersten Datei als Masterkopie, wenn die zweite Datei veränderlich ist, und Ersetzen der zweiten Datei durch einen bedingten Link, der auf die Masterkopie verweist; und Ermitteln, welche Datei der ersten und zweiten Datei einen späteren Ablauftermin und welche Datei einen früheren Ablauftermin aufweist, wenn die zweite Datei unveränderlich ist, Speichern der einen Datei der ersten und zweiten Datei mit dem späteren Ablauftermin als Masterkopie und Ersetzen der einen Datei der ersten und zweiten Datei mit dem früheren Ablauftermin durch einen bedingten Link, der auf die Masterkopie verweist,. wobei der bedingte Link Daten enthält, die den früheren Ablauftermin definieren, die zweite Datei einen früheren Ablauftermin aufweist; und das Ersetzen ein Löschen einer gespeicherten Kopie der zweiten Datei aufweist.
- Verfahren nach
Anspruch 1 , wobei die Anforderung zum Speichern der ersten Datei eine Anforderung oder Anweisung zum Speichern der ersten Datei in einem gemeinsam genutzten Speicher aufweist. - Verfahren nach
Anspruch 2 , wobei: die Anforderung zum Speichern der ersten Datei von einer lokalen Datenverarbeitungseinheit empfangen wird; und sich der gemeinsam genutzte Speicher in einer Cloud-Umgebung befindet, der von der lokalen Datenverarbeitungseinheit entfernt ist. - Verfahren nach
Anspruch 1 , wobei das Suchen nach der zweiten Datei ein Vergleichen eines Hash-Wertes der ersten Datei mit den Hash-Werten anderer gespeicherter Dateien aufweist. - Verfahren nach
Anspruch 1 , wobei das Suchen nach der zweiten Datei aufweist: Ermitteln mindestens einer potenziell redundanten Datei durch Vergleichen eines Hash-Wertes mit Hash-Werten anderer gespeicherter Dateien; und Vergleichen der ersten Datei mit der mindestens einen potenziell redundanten Datei unter Verwendung eines Dateiunterscheidungsprozesses. - Verfahren nach
Anspruch 1 , wobei es sich bei dem späteren Ablauftermin und dem früheren Ablauftermin um Ablauftermine für die Unveränderlichkeit handelt. - Verfahren nach
Anspruch 1 , wobei ein Dienstanbieter die Computer-Infrastruktur erzeugt und/oder wartet und/oder installiert und/oder unterstützt. - Verfahren nach
Anspruch 1 , wobei Schritte nachAnspruch 1 durch den Dienstanbieter auf der Grundlage von Abonnements, Werbung und/oder Gebühren bereitgestellt werden. - System zum Deduplizieren von Dateien, das als Hardware implementiert ist und eine Computer-Infrastruktur aufweist, die eingerichtet ist: eine Anforderung zum Speichern einer ersten Datei als unveränderliche Datei zu empfangen; eine Mehrzahl zweiter Dateien zu ermitteln, die in Bezug auf die erste Datei redundant sind; für jede einzelne aus der Mehrzahl zweiter Dateien zu ermitteln, ob sie unveränderlich ist; eine Datei, die einen spätesten Ablauftermin aufweist, aus einer Gruppe zu erkennen, die die erste Datei und die Mehrzahl zweiter Dateien aufweist; die Datei, die den spätesten Ablauftermin aufweist, als Masterkopie zu speichern; und jede Datei in der Gruppe mit Ausnahme der Datei mit dem spätesten Ablauftermin durch eine entsprechende Datenstruktur zu ersetzen, die auf die Masterkopie verweist, wobei jede der Mehrzahl der zweiten Dateien unveränderlich ist, die entsprechende Datenstruktur einen bedingten Link aufweist, der einen Ablauftermin für die Unveränderlichkeit aufweist, und jede der Mehrzahl der zweiten Dateien einen früheren Ablauftermin als die erste Datei aufweist, und das Ersetzen ein Löschen einer gespeicherten Kopie der zweiten Datei aufweist.
- System nach
Anspruch 9 , wobei die entsprechende Datenstruktur einen Ablauftermin für die Unveränderlichkeit aufweist. - System nach
Anspruch 9 , wobei die Anforderung zum Speichern der ersten Datei eine Anforderung oder Anweisung zum Speichern der ersten Datei in einem gemeinsam genutzten Speicher aufweist. - System nach
Anspruch 11 , wobei: die Anforderung zum Speichern der ersten Datei von einer lokalen Datenverarbeitungseinheit empfangen wird; der gemeinsam genutzte Speicher sich in einer Cloud-Umgebung befindet, die von der lokalen Datenverarbeitungseinheit entfernt ist; und die Masterkopie in dem gemeinsam genutzten Speicher gespeichert ist. - System nach
Anspruch 9 , wobei das Ermitteln der Mehrzahl zweiter Dateien, die zu der ersten Datei redundant sind, ein Vergleichen eines Hash-Wertes der ersten Datei mit Hash-Werten anderer gespeicherter Dateien aufweist. - System nach
Anspruch 9 , wobei die Computer-Infrastruktur ferner geeignet ist, die Masterkopie zu löschen oder die Masterkopie als veränderlich zu kennzeichnen, nachdem diese den spätesten Ablauftermin erreicht hat. - System nach
Anspruch 14 , wobei die Computer-Infrastruktur ferner geeignet ist: aus einer Mehrzahl von bedingten Links, die auf die Masterkopie verweisen, einen bedingten Link mit einem neuen spätesten Ablauftermin zu ermitteln; und den bedingten Link mit dem neuen spätesten Ablauftermin als neue Masterkopie zu unterstützen; und die Mehrzahl bedingter Links mit Ausnahme des bedingten Links mit dem neuen spätesten Ablauftermin zu aktualisieren, damit diese auf die neue Masterkopie verweisen. - Computerprogrammprodukt, das ein durch Computer nutzbares materielles Speichermedium mit einem in dem materiellen Speichermedium verkörperten lesbaren Programmcode aufweist, wobei das Computerprogrammprodukt mindestens eine Komponente enthält, die eingerichtet ist: eine Anforderung zum Speichern einer ersten Datei als unveränderliche Datei in einem gemeinsam genutzten Speicher zu empfangen, wobei die Anforderung von einer lokalen Datenverarbeitungseinheit empfangen wird, die von dem gemeinsam genutzten Speicher entfernt ist; mindestens eine zweite Datei zu erkennen, die in dem gemeinsam genutzten Speicher gespeichert und in Bezug auf die erste Datei redundant ist; zu ermitteln, ob die mindestens eine zweite Datei veränderlich oder unveränderlich ist; die erste Datei als Masterkopie zu speichern, wenn die mindestens eine zweite Datei veränderlich ist, und Ersetzen jeder der mindestens einen zweiten Datei durch einen entsprechenden bedingten Link, der auf die Masterkopie verweist; und wenn die mindestens eine zweite Datei unveränderlich ist: eine Datei mit einem spätesten Ablauftermin aus einer Gruppe zu erkennen, die die erste Datei und die mindestens eine zweite Datei aufweist; die Datei mit dem spätesten Ablauftermin als Masterkopie zu speichern; und jede Datei in der Gruppe mit Ausnahme der Datei mit dem spätesten Ablauftermin durch eine entsprechende Datenstruktur zu ersetzen, die auf die Masterkopie verweist, wobei der bedingte Link Daten aufweist, der den früheren Ablauftermin definiert, und die mindestens eine zweite Datei einen früheren Ablauftermin aufweist, und das Ersetzen ein Löschen einer gespeicherten Kopie der mindesten einen zweiten Datei aufweist.
- Computerprogrammprodukt nach
Anspruch 16 , wobei das Erkennen der mindestens einen zweiten Datei ein Vergleichen eines Hash-Wertes der ersten Datei mit Hash-Werten anderer in dem gemeinsam genutzten Speicher gespeicherter Dateien aufweist. - Verfahren zum Deduplizieren von Dateien, wobei das Verfahren aufweist: Bereitstellen einer Computer-Infrastruktur, die eingerichtet ist: eine Anforderung zum Speichern einer ersten Datei als unveränderliche Datei in einem gemeinsam genutzten Speicher zu empfangen, wobei die Anforderung von einer lokalen Datenverarbeitungseinheit empfangen wird, die von dem gemeinsam genutzten Speicher entfernt ist; eine Mehrzahl zweiter Dateien zu ermitteln, die in Bezug auf die erste Datei redundant sind; zu ermitteln, ob eine erste Teilmenge der Mehrzahl zweiter Dateien veränderlich ist; zu ermitteln, ob eine zweite Teilmenge der Mehrzahl zweiter Dateien unveränderlich ist; eine Datei mit einem spätesten Ablauftermin aus einer Gruppe zu erkennen, die die erste Datei und die zweite Teilmenge aufweist; die Datei mit dem spätesten Ablauftermin als Masterkopie zu speichern; und jede Datei in der Gruppe mit Ausnahme der Datei mit dem spätesten Ablauftermin durch einen entsprechenden bedingten Link zu ersetzen, der auf die Masterkopie verweist, wobei jede Datei in der Gruppe unveränderlich ist, der entsprechende bedingten Link Daten aufweist, der einen früheren Ablauftermin definiert, und das Ersetzen ein Löschen einer gespeicherten Kopie jeder Datei in der Gruppe mit Ausnahme der Datei aufweist, die den letzten Ablauftermin aufweist.
- Verfahren nach
Anspruch 18 , wobei das Ermitteln der Mehrzahl zweiter Dateien, die zu der ersten Datei redundant sind, ein Vergleichen eines Hash-Wertes der ersten Datei mit Hash-Werten anderer in dem gemeinsam genutzten Speicher gespeicherter Dateien aufweist. - Computersystem zum Deduplizieren von Dateien, wobei das System aufweist: eine CPU, einen computerlesbaren Speicher und ein computerlesbares Speichermedium; erste Programmanweisungen zum Empfangen einer Anforderung zum Speichern einer ersten Datei als unveränderliche Datei in einem gemeinsam genutzten Speicher, wobei die Anforderung von einer lokalen Datenverarbeitungseinheit empfangen wird, die von dem gemeinsam genutzten Speicher entfernt ist; zweite Programmanweisungen zum Ermitteln einer Mehrzahl zweiter Dateien, die unveränderlich und in Bezug auf die erste Datei redundant sind; dritte Programmanweisungen zum Erkennen einer Datei mit einem spätesten Ablauftermin aus einer Gruppe, die die erste Datei und die Mehrzahl zweiter Dateien aufweist; vierte Programmanweisungen zum Speichern der Datei mit dem spätesten Ablauftermin als Masterkopie; und fünfte Programmanweisungen zum Ersetzen jeder Datei in der Gruppe mit Ausnahme der Datei mit dem spätesten Ablauftermin durch eine entsprechende Datenstruktur, die auf die Masterkopie verweist; wobei die ersten, zweiten, dritten, vierten und fünften Programmanweisungen auf dem computerlesbaren Speichermedium gespeichert sind, um über den computerlesbaren Speicher durch die CPU ausgeführt zu werden; und wobei das Ermitteln der Mehrzahl zweiter Dateien, die unveränderlich und in Bezug auf die erste Datei redundant sind, aufweist: Ermitteln mindestens einer potenziell redundanten Datei durch Vergleichen eines Hash-Wertes der ersten Datei mit Hash-Werten anderer in dem gemeinsam genutzten Speicher gespeicherter Dateien; und Vergleichen der ersten Datei mit der mindestens einen potenziell redundanten Datei unter Verwendung eines Dateiunterscheidungsprozesses, wobei jede Datei in der Gruppe unveränderlich ist, jede der entsprechenden Datenstrukturen einen bedingten Link aufweist, der Daten aufweist, die einen früheren Ablauftermin definieren, und das Ersetzen ein Löschen einer gespeicherten Kopie jeder Datei in der Gruppe mit Ausnahme der Datei aufweist, die den letzten Ablauftermin aufweist.
- Computersystem nach
Anspruch 20 , wobei es sich bei dem spätesten Ablauftermin um einen Ablauftermin für die Unveränderlichkeit handelt.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/310,007 | 2011-12-02 | ||
US13/310,007 US8468138B1 (en) | 2011-12-02 | 2011-12-02 | Managing redundant immutable files using deduplication in storage clouds |
PCT/CN2012/081032 WO2013078895A1 (en) | 2011-12-02 | 2012-09-06 | Managing redundant immutable files using deduplication in storage clouds |
Publications (2)
Publication Number | Publication Date |
---|---|
DE112012005037T5 DE112012005037T5 (de) | 2014-08-14 |
DE112012005037B4 true DE112012005037B4 (de) | 2018-11-15 |
Family
ID=48524758
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE112012005037.1T Active DE112012005037B4 (de) | 2011-12-02 | 2012-09-06 | Verwalten von redundanten unveränderlichen Dateien unter Verwendung von Deduplizierungen in Speicher-Clouds |
Country Status (4)
Country | Link |
---|---|
US (4) | US8468138B1 (de) |
CN (1) | CN103959264B (de) |
DE (1) | DE112012005037B4 (de) |
WO (1) | WO2013078895A1 (de) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8886742B2 (en) * | 2011-01-28 | 2014-11-11 | Level 3 Communications, Llc | Content delivery network with deep caching infrastructure |
US9779103B2 (en) * | 2012-04-23 | 2017-10-03 | International Business Machines Corporation | Preserving redundancy in data deduplication systems |
US9262428B2 (en) | 2012-04-23 | 2016-02-16 | International Business Machines Corporation | Preserving redundancy in data deduplication systems by designation of virtual address |
US8996881B2 (en) | 2012-04-23 | 2015-03-31 | International Business Machines Corporation | Preserving redundancy in data deduplication systems by encryption |
US10133747B2 (en) | 2012-04-23 | 2018-11-20 | International Business Machines Corporation | Preserving redundancy in data deduplication systems by designation of virtual device |
US10482064B2 (en) * | 2012-06-26 | 2019-11-19 | Oracle International Corporations | De-duplicating immutable data at runtime |
US9582386B2 (en) | 2013-03-15 | 2017-02-28 | Cloudendure, Ltd. | System and method for maintaining a copy of a cloud-based computing environment and restoration thereof |
US10191823B2 (en) | 2014-03-11 | 2019-01-29 | Cloudendure Ltd. | System and method for restoring original machines from replicated machines in a secondary computing environment |
WO2015084308A1 (en) * | 2013-12-02 | 2015-06-11 | Empire Technology Development, Llc | Computing resource provisioning based on deduplication |
CN104361034A (zh) * | 2014-10-27 | 2015-02-18 | 浪潮(北京)电子信息产业有限公司 | 一种云存储的文件管理方法及装置 |
CN106339309B (zh) * | 2015-07-14 | 2020-01-31 | 腾讯科技(深圳)有限公司 | 应用程序的测试方法、客户端及系统 |
CN105915626B (zh) * | 2016-05-27 | 2019-02-26 | 南京邮电大学 | 一种面向云存储的数据副本初始放置方法 |
US10554746B2 (en) | 2016-11-14 | 2020-02-04 | International Business Machines Corporation | Decentralized immutable storage blockchain configuration |
US10706082B1 (en) | 2017-06-29 | 2020-07-07 | Seagate Technology Llc | Deduplication database management |
US11429587B1 (en) | 2017-06-29 | 2022-08-30 | Seagate Technology Llc | Multiple duration deduplication entries |
US10789002B1 (en) * | 2017-10-23 | 2020-09-29 | EMC IP Holding Company LLC | Hybrid data deduplication for elastic cloud storage devices |
CN110019053B (zh) * | 2017-11-02 | 2022-04-01 | 福建天晴数码有限公司 | 一种Unity3D资源包冗余数据检测方法及终端 |
US10713238B2 (en) | 2017-11-14 | 2020-07-14 | Snowflake Inc. | Database metadata in immutable storage |
CN108052291A (zh) * | 2017-12-14 | 2018-05-18 | 郑州云海信息技术有限公司 | 一种云服务器的存储方法、系统、装置及可读存储介质 |
US10733454B2 (en) * | 2018-06-29 | 2020-08-04 | Hewlett Packard Enterprise Development Lp | Transformation of video streams |
CN109582642A (zh) * | 2018-11-08 | 2019-04-05 | 网宿科技股份有限公司 | 文件存储方法、删除方法、服务器及存储介质 |
US10649676B1 (en) | 2018-12-28 | 2020-05-12 | Microsoft Technology Licensing, Llc | Memory compression for immutable data structures |
US11093292B2 (en) | 2019-09-27 | 2021-08-17 | International Business Machines Corporation | Identifying recurring actions in a hybrid integration platform to control resource usage |
US20210272035A1 (en) * | 2020-02-28 | 2021-09-02 | Uber Technologies, Inc. | Storage location selection according to query evaluation |
US11436134B2 (en) * | 2020-07-09 | 2022-09-06 | Jpmorgan Chase Bank, N.A. | Method and apparatus for data integration framework |
US11314433B1 (en) | 2020-11-20 | 2022-04-26 | Seagate Technology Llc | Remote deduplication of data in a storage system |
US11934378B2 (en) | 2021-03-11 | 2024-03-19 | International Business Machines Corporation | Recording changes to records whilst preserving record immutability |
CN113505109A (zh) * | 2021-07-27 | 2021-10-15 | 北京字节跳动网络技术有限公司 | 文件共享方法、装置、计算机设备以及存储介质 |
US11829240B2 (en) | 2022-01-06 | 2023-11-28 | Red Hat, Inc. | Preventing duplication of files in a storage device |
US20230315678A1 (en) * | 2022-03-29 | 2023-10-05 | International Business Machines Corporation | Storage driver for managing a multiple layer file system on the cloud |
US11947498B2 (en) * | 2022-05-12 | 2024-04-02 | International Business Machines Corporation | De-duplication of data in executable files in a container image |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100064166A1 (en) * | 2008-09-11 | 2010-03-11 | Nec Laboratories America, Inc. | Scalable secondary storage systems and methods |
US20100332401A1 (en) * | 2009-06-30 | 2010-12-30 | Anand Prahlad | Performing data storage operations with a cloud storage environment, including automatically selecting among multiple cloud storage sites |
US20110138144A1 (en) * | 2009-12-04 | 2011-06-09 | Fujitsu Limited | Computer program, apparatus, and method for managing data |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6366933B1 (en) * | 1995-10-27 | 2002-04-02 | At&T Corp. | Method and apparatus for tracking and viewing changes on the web |
US6240414B1 (en) * | 1997-09-28 | 2001-05-29 | Eisolutions, Inc. | Method of resolving data conflicts in a shared data environment |
US6438560B1 (en) | 1999-09-16 | 2002-08-20 | International Business Machines Corporation | Reuse of immutable objects during object creation |
KR100533671B1 (ko) * | 2003-06-05 | 2005-12-05 | 삼성전자주식회사 | 효율적인 멀티미디어 컨텐츠 관리 장치 및 방법 |
US8121985B2 (en) * | 2005-10-24 | 2012-02-21 | Sap Aktiengesellschaft | Delta versioning for learning objects |
US8165221B2 (en) | 2006-04-28 | 2012-04-24 | Netapp, Inc. | System and method for sampling based elimination of duplicate data |
CN100565512C (zh) | 2006-07-10 | 2009-12-02 | 腾讯科技(深圳)有限公司 | 消除文件存储系统中冗余文件的系统及方法 |
CN101809559B (zh) | 2007-09-05 | 2013-10-16 | 伊姆西公司 | 在虚拟化服务器和虚拟化存储环境中的去重复 |
JP5044816B2 (ja) | 2007-09-06 | 2012-10-10 | インターナショナル・ビジネス・マシーンズ・コーポレーション | オブジェクトを記憶・管理するシステム |
US8548953B2 (en) * | 2007-11-12 | 2013-10-01 | F5 Networks, Inc. | File deduplication using storage tiers |
US7979670B2 (en) * | 2008-01-24 | 2011-07-12 | Quantum Corporation | Methods and systems for vectored data de-duplication |
US7899850B2 (en) | 2008-02-22 | 2011-03-01 | Bycast, Inc. | Relational objects for the optimized management of fixed-content storage systems |
US8352540B2 (en) * | 2008-03-06 | 2013-01-08 | International Business Machines Corporation | Distinguishing data streams to enhance data storage efficiency |
US8234317B1 (en) * | 2008-08-06 | 2012-07-31 | Netapp, Inc. | Auto-committing files to immutable status based on a change log of file system activity |
US8316064B2 (en) | 2008-08-25 | 2012-11-20 | Emc Corporation | Method and apparatus for managing data objects of a data storage system |
CA2747746C (en) | 2008-12-22 | 2015-08-11 | Google Inc. | Asynchronous distributed de-duplication for replicated content addressable storage clusters |
US20100306176A1 (en) * | 2009-01-28 | 2010-12-02 | Digitiliti, Inc. | Deduplication of files |
US9176978B2 (en) | 2009-02-05 | 2015-11-03 | Roderick B. Wideman | Classifying data for deduplication and storage |
US8224792B2 (en) * | 2009-08-28 | 2012-07-17 | International Business Machines Corporation | Generation of realistic file content changes for deduplication testing |
US8516137B2 (en) * | 2009-11-16 | 2013-08-20 | Microsoft Corporation | Managing virtual hard drives as blobs |
US8250325B2 (en) * | 2010-04-01 | 2012-08-21 | Oracle International Corporation | Data deduplication dictionary system |
JP5650982B2 (ja) * | 2010-10-25 | 2015-01-07 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | ファイルの重複を排除する装置及び方法 |
CN102055797A (zh) | 2010-11-29 | 2011-05-11 | 北京卓微天成科技咨询有限公司 | 一种云存储的数据存取的方法、装置及系统 |
TWI404893B (zh) * | 2011-05-13 | 2013-08-11 | 南臺科技大學 | 無導光板之led發光構造 |
US8706703B2 (en) * | 2011-06-27 | 2014-04-22 | International Business Machines Corporation | Efficient file system object-based deduplication |
-
2011
- 2011-12-02 US US13/310,007 patent/US8468138B1/en active Active
-
2012
- 2012-09-06 CN CN201280059219.8A patent/CN103959264B/zh active Active
- 2012-09-06 DE DE112012005037.1T patent/DE112012005037B4/de active Active
- 2012-09-06 WO PCT/CN2012/081032 patent/WO2013078895A1/en active Application Filing
-
2013
- 2013-05-10 US US13/891,589 patent/US8892521B2/en not_active Expired - Fee Related
-
2014
- 2014-10-17 US US14/516,740 patent/US9158783B2/en not_active Expired - Fee Related
-
2015
- 2015-07-16 US US14/800,788 patent/US9514145B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100064166A1 (en) * | 2008-09-11 | 2010-03-11 | Nec Laboratories America, Inc. | Scalable secondary storage systems and methods |
US20100332401A1 (en) * | 2009-06-30 | 2010-12-30 | Anand Prahlad | Performing data storage operations with a cloud storage environment, including automatically selecting among multiple cloud storage sites |
US20110138144A1 (en) * | 2009-12-04 | 2011-06-09 | Fujitsu Limited | Computer program, apparatus, and method for managing data |
Also Published As
Publication number | Publication date |
---|---|
US20150317328A1 (en) | 2015-11-05 |
CN103959264A (zh) | 2014-07-30 |
US9514145B2 (en) | 2016-12-06 |
WO2013078895A1 (en) | 2013-06-06 |
DE112012005037T5 (de) | 2014-08-14 |
US20130246357A1 (en) | 2013-09-19 |
US9158783B2 (en) | 2015-10-13 |
CN103959264B (zh) | 2017-03-29 |
US8892521B2 (en) | 2014-11-18 |
US20130144846A1 (en) | 2013-06-06 |
US20150039570A1 (en) | 2015-02-05 |
US8468138B1 (en) | 2013-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE112012005037B4 (de) | Verwalten von redundanten unveränderlichen Dateien unter Verwendung von Deduplizierungen in Speicher-Clouds | |
DE112016003120B4 (de) | Umleiten einer Kopie beim Schreiben | |
DE112012005275B4 (de) | Datenauswahl zur Sicherung von Datenspeichern | |
DE102013204186B4 (de) | Ermitteln von Prioritäten für zwischengespeicherte Objekte zum Ordnen des Übertragens von Änderungen an zwischengespeicherten Objekten beruhend auf gemessener Netzwerkbandbreite | |
DE112012005032T5 (de) | Entfernen der Datenremanenz in deduplizierten Speicher-Clouds | |
DE102016013248A1 (de) | Bezugsblockansammlung in einer Bezugsmenge zur Deduplizierung beim Speichermanagement | |
DE102013208930B4 (de) | Zusammenfassen von Einträgen in einem Deduplizierungs-lndex | |
DE112020003820T5 (de) | Erkennung von Anomalien und Abweichungen unter Verwendung eines domänenindizierten Einschränkungs-Repository | |
DE112019000321T5 (de) | Transaktionsoperationen in verteilten Multi-Master-Datenverwaltungssystemen | |
DE112016003626T5 (de) | Natürlichsprachliche Schnittstelle zu Datenbanken | |
DE112018004008B4 (de) | Auf dateisysteminhalten beruhende sicherheit | |
DE202009019149U1 (de) | Asynchron verteilte Speicherbereinigung für replizierte Speichercluster | |
DE202009019139U1 (de) | Asynchron verteilte Deduplizierung für replizierte inhaltsadressierte Speichercluster | |
DE202015009777U1 (de) | Transparente Entdeckung eines semistrukturierten Datenschemas | |
DE102013216273A1 (de) | Umwandlung von Datenbanktabellenformaten auf der Grundlage von Benutzerdatenzugriffsmustern in einer vernetzten Datenverarbeitungsumgebung | |
DE112017005588T5 (de) | Speichern und abrufen von eingeschränkten datensätzen in und aus einem cloud-netzwerk mit nichteingeschränkten datensätzen | |
DE102016119298A1 (de) | Zeitpunktkopieren mit klonen von ketten | |
DE102014116369A1 (de) | Verwaltung von sprachmarkern bei internationaler datenspeicherung | |
DE102021127254A1 (de) | Inhaltssensitives Auswählen von Knoten zum Erstellen von Containern | |
DE112019001433T5 (de) | Datenanonymisierung | |
DE102021123135A1 (de) | Leistungs- und upgrade-verwaltung für anlagegüter mit hilfe von digitalen zwillingen | |
DE112018002955T5 (de) | Kognitive datei- und objektverwaltung für verteilte speicherumgebungen | |
DE112017005022T5 (de) | Umladen der Bandverarbeitung auf Objektspeicher | |
DE112017005772T5 (de) | Zeitpunktgesteuerte sicherungen über einen speicher-controller in eine objektspeicher-cloud | |
DE112019000402T5 (de) | Chronologisch geordnetes out-of-place-aktualisierungs-schlüssel-wert-speichersystem |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R012 | Request for examination validly filed | ||
R082 | Change of representative |
Representative=s name: LIFETECH IP SPIES DANNER & PARTNER, PATENTANWA, DE Representative=s name: LIFETECH IP SPIES DANNER & PARTNER PATENTANWAE, DE Representative=s name: LIFETECH IP SPIES & BEHRNDT PATENTANWAELTE PAR, DE Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE |
|
R079 | Amendment of ipc main class |
Free format text: PREVIOUS MAIN CLASS: G06F0013000000 Ipc: G06F0017300000 Effective date: 20140714 |
|
R082 | Change of representative |
Representative=s name: LIFETECH IP SPIES & BEHRNDT PATENTANWAELTE PAR, DE Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE |
|
R082 | Change of representative |
Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE |
|
R016 | Response to examination communication | ||
R016 | Response to examination communication | ||
R018 | Grant decision by examination section/examining division | ||
R084 | Declaration of willingness to licence | ||
R020 | Patent grant now final | ||
R079 | Amendment of ipc main class |
Free format text: PREVIOUS MAIN CLASS: G06F0017300000 Ipc: G06F0016000000 |