DE602005004872T2 - Verfahren und computerlesbarer Datenträger zum Überprüfen und Speichern eines elektronischen Dokuments - Google Patents

Verfahren und computerlesbarer Datenträger zum Überprüfen und Speichern eines elektronischen Dokuments Download PDF

Info

Publication number
DE602005004872T2
DE602005004872T2 DE602005004872T DE602005004872T DE602005004872T2 DE 602005004872 T2 DE602005004872 T2 DE 602005004872T2 DE 602005004872 T DE602005004872 T DE 602005004872T DE 602005004872 T DE602005004872 T DE 602005004872T DE 602005004872 T2 DE602005004872 T2 DE 602005004872T2
Authority
DE
Germany
Prior art keywords
section
damaged
computer
repaired
data
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
Application number
DE602005004872T
Other languages
English (en)
Other versions
DE602005004872D1 (de
Inventor
Brian M. Redmond Jones
Carol L. Redmond Liu
Chad B. Redmond Rothschiller
Robert R. Redmond McCaughey
Shawn A. Redmond Villaron
Su-Piao Bill Redmond Wu
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of DE602005004872D1 publication Critical patent/DE602005004872D1/de
Application granted granted Critical
Publication of DE602005004872T2 publication Critical patent/DE602005004872T2/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface

Description

  • QUERVERWEIS ZU VERWANDTEN ANMELDUNGEN
  • Diese Anmeldung ist mit der derzeit eingereichten US-Patentanmeldung Nr. 11/018,914 (Anwaltsregister Nr. 60001.0448US01) verwandt, welche mit „Verfahren und computerlesbares Medium zum Laden der Inhalte einer Datei" („Method and Computer-readable medium for loading the contents of a data file") betitelt ist.
  • HINTERGRUND DER ERFINDUNG
  • Computer werden in der heutigen Gesellschaft tiefgreifend verwendet, um einer großen Vielfalt von Aufgaben und Unterhaltungszwecken zu dienen. Zum Beispiel werden Computer heutzutage für Spiele, Kommunikation, Forschung und eine geradezu endlose Vielfalt von anderen Anwendungen eingesetzt. Eine der meistverbreiteten Verwendungen von Computern von sowohl Betrieben als auch Einzelpersonen gleichermaßen, ist die Erschaffung von elektronischen und gedruckten Dokumenten. Es gibt Computeranwendungsprogramme für die Erstellung aller Arten von elektronischen Dokumenten, inklusive Tabellen, Präsentationen, textverarbeitender Dokumente, graphischer Dokumente, so wie Diagramme und digitale Bilder, Dokumente mit computerunterstützten Entwürfen und viele andere Arten von elektronischen Dokumenten.
  • Elektronische Dokumente umfassen oft Inhalte, die sehr wichtig sind. Darüber hinaus ist der Inhalt eines elektronischen Dokumentes in vielen Fallen schwer oder unmöglich wiederherzustellen, wenn er verloren geht. Zum Beispiel können oft erstellte hochkomplizierte Rechts-, Geschäfts-, Marketing- und technische Dokumente nicht einfach wiederhergestellt werden, wenn die Datei oder der Daten- bzw. der Dateiordner, der die Dokumente enthält, beschädigt oder zerstört wurde. Sogar in Fällen, in denen der Inhalt eines Dokumentes einfach wiederhergestellt werden könnte, kann es sehr frustrierend für den Benutzer sein, sogar nur einen kleinen Teil der Daten zu verlieren. Dementsprechend ist es sehr wichtig, dass die in elektronischen Dokumenten beinhalteten Daten gegen Beschädigung und Zerstörung geschützt werden.
  • Moderne Computersysteme beinhalten Fehlerüberprüfungen und andere Mechanismen, um vor der ungewollten Beschädigung oder dem Verlust eines Systemspeichers zu schützen.
  • Unglücklicherweise ist es sogar mit diesen vorhandenen Mechanismen möglich, dass ein im flüchtigen Systemspeicher abgelegtes Dokument vor dem Speichern des Dokumentes in einer Datei auf einem Massenspeicher beschädigt wird. Beschädigung kann als das Resultat von einem fehlerhaften Speicher, einer fehlerhaften Speichersteuerung, Speicherverwaltungsfehlern, Ladefehlern oder beschädigten Daten, einem Absturz des Anwendungsprogrammes und aus anderen Gründen auftreten. Weil der Verlust einer jeglichen Menge von Daten für einen Benutzer frustrierend sein kann und die Zeit und der Aufwand, die zur Wiederherstellung eines beschädigten Dokumentes erforderlich ist, oft sehr groß ist, ist es wichtig, dass so viele Daten wie möglich aus einem beschädigten Dokument zurückgewonnen werden können, das vor dem Speichern des Inhaltes des Speichers in einem Massenspeichergerät in dem flüchtigen Speicher abgelegt ist.
  • Unter Berücksichtigung dieser und anderer Abwägungen wurden die verschiedenen Ausführungsformen der vorliegenden Erfindung gemacht.
  • Die Druckschrift WO 02/19075 A bezieht sich auf ein System, dass eine öffentlich zugängliche, unabhängige und sichere Betreiberinternetseite vorsieht, die dem anonymen Client-PC ein herunterladbares Vermittlungsprogramm zur Verfügung stellt, wobei mit dem Vermittlungsprogramm innerhalb des Client-PC eine Registrierungsprüfsumme generiert wird, die auf dem zu registrierenden Dokument basiert. Zusätzlich generiert der Betreiber eine Registrierungsnummer und kann ein Registrierungszertifikat erstellen, die beide auf den Client herunterladbar sind. Diese Registrierung kann dazu verwendet werden, die Integrität des Dokumentes mit Bezug auf das Datum, die Zeit und den Inhalt des Dokumentes zu einem späteren Datum und einer späteren Zeit und durch einen jeglichen Client durch einen Zugang zu sowohl dem Dokument als auch der Registrierungsnummer zu verifizieren.
  • KURZE ZUSAMMENFASSUNG DER ERFINDUNG
  • Es ist das Ziel der vorliegenden Erfindung, das obige und andere Probleme durch ein Verfahren und ein computerlesbares Medium zum Speichern des Inhaltes eines Dokumentes zu lösen, das von einer Speicherstruktur in einem flüchtigen Speicher in den auf einem Massengerät gespeicherten Dateiordner bzw. die Datei gespeichert wird. Diese Aufgabe wird durch die Erfindung, wie durch die Gegenstände der unabhängigen Ansprüche 1 und 7 dargelegt, gelöst.
  • Ausführungsformen sind in den abhängigen Ansprüchen definiert.
  • Durch die Verwendung verschiedener Ausführungsformen der vorliegenden Erfindung werden beschädigte Teile (auch „Aufzeichnungen" oder „Einträge" – „Records" genannt) der Speicherstruktur während des Speicherns einer Speicherstruktur identifiziert und ein Versuch, diese Teile zu reparieren, wird unternommen, wenn die beschädigten Teile nicht repariert werden können. Die nichtbeschädigten und reparierten Teile der Speicherstruktur werden dann in einen Dateiordner bzw. eine Datei auf dem Massenspeichergerät gespeichert. Wenn Teile der Speicherstruktur nicht repariert oder übersprungen werden können, wird ein Versuch unternommen, nur die in der Speicherstruktur beinhalteten Benutzerdaten zu speichern. Auf diese Art und Weise können die in der Speicherstruktur beinhalteten Benutzerdaten sogar in Fällen einer schweren Beschädigung des Restbestandes der Datenstruktur in einem Massenspeicher gespeichert werden.
  • Entsprechend einem Aspekt der Erfindung ist ein Verfahren zum Speichern einer in einem flüchtigen Speicher abgelegten Datenstruktur vorgesehen, der einen oder mehrere Teile zu einer Datei auf einem Massenspeichergerät beinhaltet. Entsprechend dem Verfahren werden eine Anzahl von Speichermodi zur Verfügung gestellt. In dem „normalen" Speichermodus wird ein Versuch unternommen, jeden Teil der Speicherstruktur auf normale Art und Weise zu speichern. Der normale Speichermodus beinhaltet eine minimale Integritätsüberprüfung von jedem der Teile der Speicherstruktur, so dass die Daten schnell gespeichert werden können. Wenn während des normalen Modus ein Abschnitt der Speicherstruktur angetroffen wird, der fehlt oder beschädigt ist, wird ein zweiter Modus verwendet, welcher der „sichere" Speichermodus genannt wird, um zu versuchen, die Teile der Speicherstruktur zu speichern. Ein Teil der Speicherstruktur kann als beschädigt und deswegen unspeicherbar betrachtet werden, wenn er einen Fehler oder einen Absturz des Anwendungsprogrammes verursacht, das versucht ihn zu speichern, wenn der Teil einen unerwarteten Datenwert beinhaltet, wenn dem Teil Daten fehlen, wenn der Teil ungültige Aufzeichnungen oder ungültige erweiterbare Auszeichnungssprache (extensible mark-up language – „XML") beinhaltet, und aus anderen Gründen.
  • Im sicheren Modus wird eine ausführliche Integritätsprüfung von jedem Teil der Datenstruktur durchgeführt. In dem sicheren Speichermodus kann auch ein Versuch unternommen werden, die beschädigten Teile der Speicherstruktur zu reparieren. Alle Teile, die repariert werden können, werden dann abgespeichert. Wenn ein Teil der Speicherstruktur in dem sicheren Speichermodus angetroffen wird, der fehlt oder beschädigt ist und der nicht repa rierbar ist, wird das Speichern des nicht reparierbaren Abschnittes übersprungen. Wenn Teile der Datenstruktur angetroffen werden, die nicht reparierbar sind und für welche eine Speicherung nicht übersprungen werden kann, wird ein dritter sicherer Modus verwendet, genannt der „minimale" Speichermodus bzw. Modus minimalen Abspeicherns, um zu versuchen, bestimmte Abschnitte der Datenstruktur zu speichern.
  • In dem minimalen Speichermodus werden nur die Teile der Speicherstruktur gespeichert, die Benutzerdaten beinhalten. Zum Beispiel können Benutzerdaten Textdaten oder numerische Daten umfassen, die von einem Benutzer eingegeben wurden. Als ein Beispiel, wenn die Speicherstruktur Daten für eine Tabelle beinhaltet, wird ein Versuch im minimalen Speichermodus unternommen, um nur die in den Zellen der Tabelle beinhalteten Daten zu speichern. Kein Versuch wird in dem minimalen Modus unternommen, um andere Typen von Daten zu speichern, die in der Speicherstruktur beinhaltet sein können, so wie eingebettete Objekte, Pivot-Tabellen, automatische Filter, Graphiken, Stile, Formate und Anwendungs- oder Benutzereinstellungen.
  • Gemäß anderen Ausführungsformen der Erfindung wird ein computerlesbares Medium auch zur Verfügung gestellt, auf welchem von einem Computer ausführbare Instruktionen gespeichert sind. Wenn die computerausführbaren Instruktionen von einem Computer ausgeführt werden, veranlassen sie den Computer dazu, einen ersten Speichermodus zum Speichern des Inhaltes einer Speicherstruktur zur Verfügung zu stellen, die einen oder mehrere Teile hat. In dem ersten Speichermodus wird eine minimale Integritätsprüfung der Teile der Speicherstruktur durchgeführt, während sie in einen Dateiordner auf einem Massenspeichergerät gespeichert werden. Die computerausführbaren Instruktionen veranlassen den Computer auch dazu, einen zweiten Speichermodus zum Speichern der Speicherstruktur zur Verfügung zu stellen, in dem eine ausführlichere Integritätsüberprüfung der Teile der Speicherstruktur als in dem ersten Speichermodus durchgeführt wird. In dem zweiten Speichermodus kann auch ein Versuch unternommen werden, Teile zu reparieren, die nicht speicherbar sind. Darüber hinaus wird in dem zweiten Speichermodus das Speichern von jeglichen nicht speicherbaren Daten übersprungen.
  • Die computerausführbaren Instruktion veranlassen den Computer auch dazu, mit dem Speichern der Inhalte einer Speicherstruktur in dem ersten Speichermodus zu beginnen. Wenn ein Teil der Speicherstruktur in dem ersten Speichermodus als nicht speicherbar festegelegt wird, schaltet der Computer in den zweiten Speichermodus und versucht, die Speicherstruk tur in diesem Speichermodus zu speichern. Wenn in dem zweiten Speichermodus ein nicht speicherbarer Teil angetroffen wird, der repariert werden kann, wird der nicht speicherbare Teil repariert und gespeichert. Wenn der nicht speicherbare Teil nicht repariert werden kann, wird das Speichern des nicht speicherbaren Teils übersprungen.
  • Gemäß einer Ausführungsform der Erfindung veranlassen die computerausführbaren Instruktionen den Computer auch, einen dritten Speichermodus zur Verfügung zu stellen, worin nur die Abschnitte der Speicherstruktur gespeichert werden, die Benutzerdaten beinhalten. Wenn in dem zweiten Speichermodus festgelegt wird, dass ein Teil der Speicherstruktur nicht speicherbar ist und dass der nicht speicherbare Teil nicht repariert oder übersprungen werden kann, wird ein Versuch unternommen, den Inhalt der Speicherstruktur in dem dritten Speichermodus zu speichern.
  • Die Erfindung kann als ein Rechen- bzw. Computerprozess, ein Computersystem oder jedem herstellbaren Artikel implementiert werden, so wie einem Computerprogrammprodukt oder computerlesbaren Medien. Das Computerprogrammprodukt kann ein Computerspeichermedium sein, das von einem Computersystem lesbar ist und das ein Computerprogramm aus Instruktionen zum Ausführen eines Computerprozesses enkodiert. Das Computerprogrammprodukt kann auch ein ausgebreitetes Signal auf einem Träger sein, der von einem Computersystem lesbar ist und ein Computerprogramm aus Instruktionen zum Ausführen eines Computerprozesses enkodiert.
  • Diese und andere Merkmale sowie Vorteile, welche die vorliegende Erfindung charakterisieren, werden durch das Lesen der folgenden detaillierten Beschreibung und einer Betrachtung der begleitenden Zeichnung offensichtlich.
  • KURZE BESCHREIBUNG DER VERSCHIEDENEN ANSICHTEN DER ZEICHNUNGEN
  • 1 ist ein Diagram der Architektur eines Computersystems, das ein Computersystem darstellt, welches in einer der verschiedenen Ausführungsformen der Erfindung verwendet und zur Verfügung gestellt wird;
  • 2 ist ein Blockdiagramm, das Aspekte einer Speicherstruktur und der verschiedenen Speichermodi darstellt, die von den Ausführungsformen der Erfindung zur Verfügung gestellt werden; und
  • 3A3B sind Flussdiagramme, die den veranschaulichenden Prozess zum Speichern einer Speicherstruktur gemäß den verschiedenen Ausführungsformen der Erfindung zeigen.
  • DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
  • Mit Bezug auf die Zeichnungen, in denen die gleichen Bezugszeichen die gleichen Elemente repräsentieren, werden nun verschiedene Aspekte der vorliegenden Erfindung beschrieben. Insbesondere 1 und die dazugehörige Diskussion sind dazu vorgesehen, eine kurze generelle Beschreibung einer passenden Computerumgebung zur Verfügung zu stellen, in der Ausführungsformen der Erfindung implementiert werden können. Während die Erfindung in einem generellen Kontext von Programmmodulen beschrieben wird, die auf einem Betriebssystem auf einem Personalcomputer ausgeführt werden, werden Fachmänner erkennen, dass die Erfindung auch in Kombination mit anderen Typen von Computersystemen und Computerprogrammen implementiert werden kann.
  • Generell beinhalten Programmmodule Routinen, Programme, Komponenten, Datenstrukturen und andere Typen von Strukturen, die bestimmte Aufgaben ausführen oder bestimmte abstrakte Datentypen implementieren. Darüber hinaus werden es Fachmänner anerkennen, dass die Erfindung mit anderen Konfigurationen von Computersystemen ausgeführt werden kann, die in der Hand gehaltene Geräte (hand-held devices), Multiprozessorsysteme, Mikroprozessorbasierte und programmierbare Benutzerelektronik, Minicomputer, Großrechner und dergleichen beinhalten. Die Erfindung kann auch in verteilten Computerumgebungen ausgeführt werden, worin Aufgaben von fernab liegenden Verarbeitungsgeräten ausgeführt werden, die durch ein Kommunikationsnetzwerk miteinander verbunden sind. In einer verteilten Computerumgebung können Programmmodule sowohl in lokalen als auch fernab liegenden Massenspeichergeräten angeordnet sein.
  • Mit Bezug auf 1 wird nun eine veranschaulichende Architektur eines Computers 2 beschrieben, der in verschiedenen Ausführungsformen der Erfindung verwendet wird. Die in 1 gezeigte Computerarchitektur stellt einen konventionellen Desktop- oder Laptopcomputer dar, der eine zentrale Prozessoreinheit 5 (central orocessing unit – „CPU"), einen Systemspeicher 7, beinhaltend einen Zufallszugriffsspeicher 9 (random access memory – „RAM") und einen nur lesbaren Speicher (read-only memory – „ROM") 11, und eine Systemdatenübertragungseinrichtung 12 (system bus) beinhaltet, die den Speicher mit der CPU 5 verbindet. Ein rudimentäres Ein- und Ausgabesystem (basic input/output system), das in dem ROM 11 gespeichert ist, beinhaltet die rudimentären Routinen, die dabei behilflich sind, Informationen zwischen Elementen innerhalb des Computers zu übertragen, so wie während des Hochfahrens. Der Computer 2 beinhaltet des Weiteren ein Massenspeichergerät 14 zum Speichern eines Betriebssystems 16 sowie zum Speichern von Anwendungsprogrammen und anderen Programmmodulen, die weiter unten ausführlicher beschrieben werden.
  • Das Massenspeichergerät 14 ist mit der CPU 5 über eine Massenspeichersteuerung (mass storage controller – nicht gezeigt) mit dem Bus 12 verbunden. Das Massenspeichergerät 14 und seine assoziierten Computerlesbaren Medien stellen einen nichtflüchtigen Speicher für den Computer 2 zur Verfügung. Obwohl die Beschreibung der computerlesbaren Medien, die hierin enthalten ist, sich auf Massenspeichergeräte bezieht, so wie Festplatten oder CD-ROM-Laufwerke, sollte es von Fachmännern verstanden werden, dass computerlesbare Medien alle zur Verfügung stehenden Medien sein können, auf die von dem Computer 2 zugegriffen werden kann.
  • Nur beispielhaft und nicht einschränkend kann ein computerlesbares Medium Computerspeichermedien und Kommunikationsmedien umfassen. Computerspeichermedien beinhalten flüchtige und nichtflüchtige, entnehmbare und nicht entnehmbare Medien, welche durch jegliche Verfahren oder Technologien zum Speichern von Informationen implementiert werden, so wie computerlesbare Instruktionen, Datenstrukturen, Programmmodule oder andere Daten. Computerspeichermedien beinhalten, aber sind nicht beschränkt auf RAM, ROM, EPROM, EEPROM, Flash-Speicher oder andere Festspeichertechnologien, CD-ROM, digital versatile disks („DVD") oder andere optische Speicher, magnetische Kassetten, magnetische Bänder, magnetische Scheibenspeicher oder andere magnetische Speichervorrichtungen oder jegliche andere Medien, die dazu verwendet werden können, die gewünschten Informationen zu speichern, auf welche mit dem Computer 2 zugegriffen werden kann.
  • Gemäß den verschiedenen Ausführungsformen der Erfindung kann der Computer 2 in einer vernetzten Umgebung betrieben werden, die logische Verbindungen zu fernab liegenden Computern durch ein Netzwerk 18, so wie das Internet, verwendet. Der Computer 2 kann sich mit dem Netzwerk 18 durch eine Netzwerkschnittstelleneinheit 20 verbinden, die mit dem Bus 12 verbunden ist. Es sollte anerkannt werden, dass die Netzwerkschnittstelleneinheit 20 auch dazu verwendet werden kann, andere Typen von Netzwerken von abliegenden Computersystemen anzubinden. Der Computer 2 kann auch einen Kontrollschaltkreis 22 für die Ein- und Ausgabe beinhalten (input/output controller), um Eingaben von einer Anzahl von anderen Geräten zu empfangen und zu verarbeiten, inklusive einer Tastatur, Maus oder eines elektronischen Eingabestiftes (nicht in 1 gezeigt). Ebenso kann der Eingabe-/Ausgabekontrollschaltkreis (input/output controller) 22 eine Ausgabe an einen Bildschirm, einen Drucker oder andere Typen von Ausgabegeräten zur Verfügung stellen.
  • Wie oben kurz erwähnt wurde, können eine Anzahl von Programmmodulen und Dateiordnern in dem Massenspeichergerät 14 und dem RAM 9 auf dem Computer 2 gespeichert sein, inklusive eines Betriebssystems 16, das zum Steuern des Betriebes eines vernetzten Personalcomputers geeignet ist, so wie das WINDOWS XP Betriebssystem von der MICRO-SOFT CORPORATION of Redmond, Washington. Das Massenspeichergerät 14 und das RAM 9 können auch eines oder mehrere Programmmodule speichern. Insbesondere können das Massenspeichergerät 14 und das RAM 9 ein Tabellenkalkulationsanwendungsprogramm 10 speichern. Wie es Fachmännern bekannt sein wird, ist das Tabellenkalkulationsanwendungsprogramm 10 betriebsbereit bzw. betreibbar, um die Funktionalität zum Erschaffen und Editieren von elektronischen Tabellen zur Verfügung zu stellen.
  • Entsprechend einer Ausführungsform der Erfindung beinhaltet das Tabellenkalkulationsanwendungsprogramm 10 das EXCEL-Tabellenkalkulationsanwendungsprogramm von der MICROSOFT CORPORATION. Es sollte allerdings erkannt werden, dass andere Tabellenkalkulationsanwendungsprogramme von anderen Herstellern verwendet werden können, um die verschiedenen Aspekte der vorliegenden Erfindung zu verkörpere. Es sollte auch anerkannt werden, dass, obwohl die Ausführungsformen der Erfindung, die hierin beschrieben sind, in dem Kontext eines Tabellenkalkulationsanwendungsprogrammes vorgestellt werden, die Erfindung jedoch mit jedem anderen Typ eines Anwendungsprogrammes verwendet werden kann, das Daten in einen Dateiordner bzw. eine Datei speichert. Zum Beispiel können die hierin beschriebenen Ausführungsformen der Erfindung innerhalb eines Textverarbeitsungsanwendungsprogrammes, eines Präsentationsanwendungsprogrammes, eines Zeichnungs- oder computerunterstützten Designanwendungsprogrammes oder eines Datenanbankwendungsprogrammes angewendet werden.
  • Wie in 1 gezeigt ist, können Teile des Tabellenkalkulationsanwendungsprogrammes 10 während der Ausführung in den flüchtigen RAM 9 gespeichert werden. Darüber hinaus kann das Tabellenkalkulationsanwendungsprogramm 10 in Verbindung mit der Erschaffung und dem Editieren von Tabellen bzw. Tabellenkalkulationsdokumenten einen Teil des RAM 9 verwenden, um das Dokument zu speichern. Insbesondere das Tabellenkalkulationsanwendungsprogramm 10 kann einen oder mehrere Speicherstrukturen 25 verwenden, um das Tabellenkalkulationsdokument repräsentierende Daten zu speichern. Von Zeit zu Zeit ist das Tabellenkalkulationsanwendungsprogramm 10 entweder als Reaktion auf eine Benutzeranfrage oder auf eine automatisierte Art und Weise betriebsfähig bzw. betriebsbereit, den Inhalt der Speicherstruktur 25 in einen auf dem Massenspeichergerät 14 gespeicherten Dateiordner bzw. eine Datei 24 zu speichern. Die Datei 24 beinhaltet Daten, die verschiedene Aspekte des Tabellenkalkulationsdokumentes beinhalten, so wie Benutzerdaten, die den Inhalt der Zellen der Tabelle beinhalten, Anwendungseinstellung, Formatinformationen und andere Daten, die zu den verschiedenen Merkmalen gehören, die von dem Tabellenkalkulationsanwendungsprogramm 10 zur Verfügung gestellt werden. Wie weiter unten mit Bezug auf die 23B noch ausführlicher beschrieben wird, wird ein Verfahren zum Speichern der Inhalte der Speicherstruktur 25 in die Datei 24 von dem Tabellenkalkulationsanwendungsprogramm 10 verwendet, das die Wahrscheinlichkeit für eine Beschädigung in der Speicherstruktur 25 berechnet und das versucht, die Menge der Benutzerdaten zu maximieren, die in der Datei 24 gespeichert werden, sogar wenn die Speicherstruktur 25 beschädigt wurde.
  • Sich nun 2 zuwendend, werden zusätzliche Details zur Verfügung gestellt, welche den Inhalt der Speicherstrukturen 25 und den Betrieb der Speichermechanismen betrachten, die von dem Tabellenkalkulationsanwendungsprogramm 10 verwendet werden. Wie in 2 gezeigt ist, sind die Speicherstrukturen 25 in eine Anzahl von Teilen 26A26N unterteilt. Jeder der Teile 26A26N wird zum Speichern von Informationen verwendet, die sich auf eines oder mehrere Merkmale beziehen, die von dem Tabellenkalkulationsanwendungsprogramm 10 unterstützt werden. Darüber hinaus können die Informationen von verschiedenen, aber miteinander verwandten Merkmalen in einem einzelnen der Teile 26A26N gespeichert werden. Zum Beispiel werden die Daten für die Merkmale A–C wie in 2 gezeigt in dem Teil 26A gespeichert. Die Daten für das Merkmal D werden im Teil 26B gespeichert. Die Daten für die Merkmale E–G werden in dem Teil 26C gespeichert und so weiter. Benutzerdaten können in jedem der Teile 26A26N gespeichert sein. Es sollte gewürdigt werden, dass die in der Speicherstruktur 25 gespeicherten Daten in einer nicht kontinuierlichen Art und Weise gespeichert werden können und dass die Daten für miteinander verwandte Merkmale in separaten Speicherorten gespeichert sein können.
  • Wie oben kurz beschrieben und in 2 gezeigt ist, ist es für die innerhalb der Teile 26A26N beinhalteten Daten möglich, beschädigt zu werden. Eine Beschädigung (corruption) kann das Ergebnis eines fehlerhaften Speichers, einer fehlerhaften Speichersteuerung bzw. eines fehlerhaften Speicherkontrollschaltkreises, von Speicherverwaltungsfehlern, Ladefehlern oder beschädigten Daten, eines Absturzes des Anwendungsprogrammes oder aus anderen Gründen sein. Die Daten für einen bestimmten Abschnitt können auch als verlorengegangen bestimmt werden. Ein Teil der Speicherstruktur 25 kann als beschädigt und deswegen unspeicherbar angesehen werden, wenn der Teil einen Fehler in dem oder einen Absturz des Anwendungsprogrammes verursacht, das versucht, ihn zu speichern, wenn der Abschnitt einen nicht erwarteten Datenwert beinhaltet, wenn dem Abschnitt Daten fehlen, wenn der Abschnitt eine ungültige Aufzeichnung oder ungültige erweiterbare Auszeichnungssprache (extensible markup language – „XML") beinhaltet oder aus anderen Gründen. In den illustrativen Speicherstrukturen 25, die in 2 gezeigt sind, wurden die Teile 26B und 26C beschädigt.
  • Wie hierin beschrieben wird, sind Teile der Speicherstruktur 25 von dem Tabellelenkalkulationsanwendungsprogramm 10 speicherbar, abgesehen von der Beschädigung der Teile 26B und 26D. 2 zeigt auch diesen Speicherprozess, der die illustrativen Speicherstrukturen 25 verwendet. Im Besonderen beginnt das Tabellenkalkulationsanwendungsprogramm 10 mit dem Speichern der Speicherstruktur 25 in einem normalen Speichermodus. In dem normalen Speichermodus wird eine minimale Integritätsüberprüfung der Teile 26A26N der Speicherstruktur 25 durchgeführt. Wenn ein beschädigter Teil der Speicherstruktur 25 während des Speicherns im normalen Modus angetroffen wird, schaltet das Tabellenkalkulationsanwendungsprogramm 10 in einen sicheren Speichermodus und fängt damit an, die Speicherstruktur 25 von vorn zu speichern. Zum Beispiel wenn der beschädigte Teil 26B, wie in 2 gezeigt ist, in dem normalen Speichermodus angetroffen wird, wird in den sicheren Speichermodus gewechselt und die Speicherung beginnt von vorn am Anfang der Speicherstruktur 25. Es sollte gewürdigt werden, dass entsprechend den Ausführungsformen der Erfindung, das Speichern von zusätzlichen Teilen der Speicherstruktur 25 nicht an den Anfang zurückzukehren braucht.
  • In dem sicheren Speichermodus wird gegenüber dem normalen Speichermodus eine zusätzliche Integritätsprüfung der Teile 26A26N der Speicherstruktur 25 durchgeführt. Wenn ein beschädigter Abschnitt während des Speicherns im sicheren Modus angetroffen wird, wird zusätzlich ein Versuch unternommen, den beschädigten Teil zu reparieren. Wenn der beschädigte Teil repariert werden kann, wird dieser Teil gespeichert. Wenn der beschädigte Teil nicht repariert werden kann, dann wird das Speichern des beschädigten Teils übersprungen. Zum Beispiel, wie in 2 gezeigt ist, ist der Teil 26B beschädigt und kann nicht gespeichert werden. Deswegen wird das Speichern des Teils 26B übersprungen und der Teil 26C wird gespeichert.
  • Nachdem der Teil 26C gespeichert wurde, wird dann ein Versuch unternommen, den Teil 26D zu speichern. Allerdings, wie in 2 gezeigt ist, ist der Teil 26D beschädigt. Dementsprechend wird ein Versuch unternommen, den Teil 26D zu reparieren. Wenn der Teil 26D nicht gespeichert werden kann, wird das Speichern des Teils 26D übersprungen und dieser Prozess wird fortgesetzt, bis die übrig bleibenden Teile repariert oder übersprungen wurden. Gemäß einer Ausführungsform der Erfindung kann die Speicherung der Speicherstrukturen 25 an den Anfang der Speicherstruktur 25 zurückkehren, nachdem ein nicht speicherbarer Teil angetroffen wurde und für nicht reparierbar erklärt wurde. Dies ist in 2 dargestellt. Wieder an den Anfang der Speicherstruktur 25 auf diese Weise zurückzukehren, erlaubt das Speichern von anderen Teilen der Datei 24, die im Zusammenhang mit einem nicht speicherbaren Teil stehen, der zu überspringen ist, sogar wenn die in Zusammenhang stehenden Teile nicht beschädigt sind.
  • Wenn während des Speicherns der Speicherstruktur 25 ein Teil angetroffen wird, der nicht speicherbar und nicht reparierbar ist, kann das Tabellenkalkulationsanwendungsprogramm 10 in einen dritten Speichermodus umschalten, welcher der minimale Speichermodus bzw. Modus minimalen Abspeicherns genannt wird. In dem minimalen Speichermodus wird ein Versuch unternommen, nur die Benutzerdaten aus den Speicherstrukturen 25 zu speichern. Im Besonderen wird unter Betrachtung von einem Textdokument ein Versuch unternommen, nur den Text des Dokumentes zu speichern. Unter Bezug auf ein Tabellen- bzw. Tabellenkalkulationsdokument wird ein Versuch unternommen, den Inhalt der Zellen des Tabellenkalkulationsdokumentes zu speichern, welche die Dateneingaben von dem Benutzer, Formeln und von Formeln generierte Daten beinhalten. Auf diese Art und Weise können, sogar wenn Teile der Speicherstruktur beschädigt sind, einige oder alle der Benutzerdaten zurück gewonnen und gespeichert werden. Dieser Prozess ist durch die gepunktete Linie in 2 dargestellt und würde ausgeführt werden, wenn der Teil 26D für nicht speicherbar und nicht reparierbar bestimmt wird. Zusätzliche Details, welche diesen Prozess betrachten, werden unten mit Bezug auf die 3A3B zur Verfügung gestellt.
  • Mit Bezug auf die 3A3B wird nun die Routine 300 erklärt werden, welche einen von dem Tabeilenkalkulationsanwendungsprogramm 10 zum Speichern des Inhalts einer Datenstruktur 25 verwendeten Prozess darstellt. Wenn die Diskussion der Routinen, die hierin präsentiert werden, gelesen wird, sollte es gewürdigt werden, dass die logischen Operationen von verschiedenen Ausführungsformen der vorliegenden Erfindung als eine Sequenz von computerimplementierten Schritten oder Programmmodulen implementiert (1) werden, die auf einem Computersystem und/oder (2) als miteinander verbundene maschinelle logische Schaltkreise oder Schaltkreismodule innerhalb des Computersystems laufen. Die Implementation ist abhängig von den Anforderungen an die Arbeitsleistung des Computersystems auswählbar, das die Erfindung implementiert. Entsprechend werden die logischen Operationen, die in den 3A3B dargestellt sind und welche die Ausführungsformen der darin beschriebenen vorliegenden Erfindung ausmachen, verschiedenartig als Operationen, strukturelle Geräte, Schritte oder Module bezeichnet. Es wird von einem Fachmann erkannt werden, dass diese Operationen, strukturellen Geräte, Schritte und Module als Software, in firmware, in digitaler Logik für spezielle Zwecke und als eine Kombination davon implementiert werden können, ohne von dem Wesen und dem Ziel der vorliegenden Erfindung abzuweichen, wie es in den hierin vorgegebenen Ansprüchen ausgedrückt wird.
  • Es sollte gewürdigt werden, dass die Routine 300 während ihrer Ausführung verschiedene Variablen verwendet. Insbesondere hält die Variable „mode" mit dem aktuellen Speichermodus Schritt. Diese Variable kann entweder zu „safe" („sicher"), „normal" oder „minimal” gesetzt werden. Die Variable „skip counter" („Überspringzähler") hält mit den Speicherstrukturen 25 Schritt, die übersprungen werden sollten, wenn das Speichern der Speicherstrukturen 25 an den Anfang zurückkehrt, nachdem ein beschädigter Teil angetroffen wurde. Eine Variable „number of records to skip" („Anzahl der zu überspringenden Aufzeichnungen") beschreibt die aktuelle Anzahl von Abschnitten, die während des aktuellen Speicherversuchs übersprungen werden sollten. Eine Variable „current record" („aktuelle Aufzeichnung") identifiziert den aktuellen Abschnitt innerhalb der Daten, während dieser verarbeitet wird. Es sollte gewürdigt werden, dass mehr oder weniger Variablen zum Ausführen der gleichen Aufgabe verwendet werden können. Darüber hinaus sollte erkannt werden, dass die in den 3A und 3B dargestellte Routine 300 nur eine mögliche Implementation der Erfin dung repräsentiert und dass viele andere Implementationen für einen Fachmann offensichtlich sein werden.
  • Die Routine 300 beginnt bei jeder Operation 302, 304 oder 306. Insbesondere kann entsprechend den Ausführungsformen der Erfindung eine Benutzerschnittstelle zur Verfügung gestellt werden, die es einem Benutzer erlaubt, auszuwählen, ob ein Dokument normal gespeichert wird (Operation 304), ob es im sicheren Speichermodus gespeichert wird (Operation 302) oder ob es im minimalen Speichermodus (306) gespeichert wird. Diese Benutzerschnittstelle kann dem Benutzer angezeigt werden, wenn der Benutzer fordert, das Dokument zu speichern. Basierend auf der Auswahl des Benutzers innerhalb der Benutzerschnittstelle beginnt die Routine 300 ihren Betrieb an einer der Operationen 302, 304 oder 306.
  • Wenn das Speichern im sicheren Modus zu beginnen ist, beginnt die Routine 300 bei der Operation 302, wobei die Variable für den Modus auf „safe" gesetzt wird. Die Routine 300 macht dann mit der Operation 308 weiter. Wenn mit dem Speichern im normalen Speichermodus zu beginnen ist, beginnt die Routine 300 bei der Operation 304, wobei die Variable für den Modus zu „normal" gesetzt wird. Die Routine 300 macht dann von der Operation 304 bis zur Operation 308 weiter. Wenn mit dem Speichern im minimalen Speichermodus zu beginnen ist, beginnt die Routine bei der Operation 306, wobei die Variable für den Modus zu „minimal" gesetzt wird. Von der Operation 306 an setzt sich die Routine 300 bis zur Operation 348 fort, wie unten beschrieben ist.
  • Bei der Operation 308 wird die Variable des Zählers der Übersprünge bzw. Auslassungen initialisiert, um anzuzeigen, dass keine Aufzeichnungen übersprungen bzw. ausgelassen werden sollten. Die Routine 300 macht dann mit der Operation 310 weiter, wobei die aktuelle Aufzeichnung zu der ersten Aufzeichnung in der Speicherstruktur gesetzt wird. Die Variable der Anzahl der Aufzeichnungen, die zu überspringen sind, ist der Anzahl der zu überspringenden Aufzeichnungen gleichgesetzt. Bei dem ersten Durchlauf setzt dies die Anzahl der zu überspringenden Aufzeichnungen gleich Null. Von der Operation 310 fährt die Routine 300 mit der Operation 312 fort.
  • Bei der Operation 312 wird ein Versuch unternommen, die aktuelle Aufzeichnung im aktuellen Modus zu speichern. Zum Beispiel wenn die Variable für den Modus gleich „normal" ist, wird eine minimale Integritätsüberprüfung der zu speichernden Abschnitte ausgeführt. Wenn die Variable gleich „safe" gesetzt ist, wird eine zusätzliche Integritätsüberprüfung durchgeführt. Von der Operation 312 fährt die Routine 300 mit der Operation 314 fort, wobei eine Festlegung gemacht wird, ob die aktuelle Aufzeichnung nicht speicherbar ist (d. h. entweder beschädigt oder fehlend). Wenn die aktuelle Aufzeichnung speicherbar ist, dann zweigt die Routine 300 zur Operation 316 ab, wo eine Festlegung gemacht wird, ob mehr Aufzeichnungen verbleiben, die zu speichern sind. Wenn mehr Aufzeichnungen vorhanden sind, zweigt die Routine 300 von der Operation 316 zur Operation 318 ab, wobei die Variable für die aktuelle Aufzeichnung zu der nächsten Aufzeichnung in der Speicherstruktur 25 gesetzt wird. Die Routine 300 fährt dann mit der Operation 312 fort, wo die nächste Aufzeichnung gespeichert wird. Wenn bei der Operation 316 festgelegt wird, dass keine zusätzlichen Aufzeichnungen überbleiben, um gespeichert zu werden, zweigt die Routine 300 zur Operation 320 ab, wo sie endet. Auf diese Art und Weise werden alle Aufzeichnungen im aktuellen Modus gespeichert, wenn keine beschädigten oder fehlenden Aufzeichnungen existieren.
  • Es sollte erkannt werden, dass in Ausführungsformen der Erfindung einige Integritätsüberprüfungen (integrity checks) auf der Merkmalsebene (feature level) durchgeführt werden können, die der Aufzeichnungsebene (record level) gegenübersteht.
  • Um solche Integritätsüberprüfungen auf der Merkmalsebene durchzuführen, wird ein Versuch unternommen, alle Aufzeichnungen für ein bestimmtes Merkmal zu speichern. Dann wird eine Festlegung gemacht, ob die Daten für das Merkmal gültig sind. Wenn die Daten ungültig sind, werden die zu überspringenden Daten an die Aufzeichnungen für das zu überspringende Merkmal aktualisiert und ein weiterer Versuch wird unternommen, die Datei zu speichern. Konsistenzüberprüfungen auf Dateiebenen (file-level consistency checks) können auch auf gleiche Art und Weise gemacht werden.
  • Wenn bei der Operation 314 festgelegt wird, dass die aktuelle Aufzeichnung nicht speicherbar ist, fährt die Routine 314 mit der Operation 322 fort, wo eine Festlegung getroffen wird, ob der aktuelle Modus der normale Modus ist. Wenn der aktuelle Modus der normale Modus ist, zweigt die Routine 300 zur Operation 324 ab, wo die Zählervariable für das Überspringen aktualisiert wird, welche anzeigt, dass ein Teil der Speicherstruktur 25 identifiziert wurde, der vielleicht übersprungen werden muss. Die Routine 300 fährt dann mit der Operation 324 fort, wo die Variable für den Modus zu „safe" gesetzt wird. Auf diese Art und Weise wird der Speichermodus auf das Antreffen des nicht speicherbaren Teils der Speicherstruktur 25 hin von dem normalen Modus zu dem sicheren Modus umgeschaltet. Die Routine 300 kehrt dann zur Operation 310 zurück, wo die Verarbeitung des Dateiordners bzw. der Datendatei an den Anfang zurückkehrt.
  • Wenn bei der Operation 322 festgelegt wird, dass der aktuelle Speichermodus nicht der normale Modus ist, fährt die Routine 300 bei der Operation 328 fort, wo eine Festlegung gemacht wird, ob der aktuelle Speichermodus der sichere Modus ist. Weil nur der normale oder der sichere Speichermodus mögliche Werte in diesem Abschnitt der Routine 300 sein sollten, zweigt die Routine zur Operation 330 ab, wo ein Fehler zurückgegeben wird, wenn der aktuelle Speichermodus nicht der sichere Modus ist. Die Routine 300 fährt dann von der Operation 330 an zur Operation 320 fort, wo sie endet. Wenn allerdings bei der Operation 328 festgelegt wird, dass der aktuelle Modus der sichere Modus ist, fährt die Routine 300 zu der Operation 332 fort.
  • Bei der Operation 332 wird ein Versuch unternommen, die aktuelle Aufzeichnung zu reparieren. Bei der Operation 334 wird eine Festlegung gemacht, ob die aktuelle Aufzeichnung reparierbar war. Wenn die Aufzeichnung reparierbar war, zweigt die Routine 300 zur Operation 336 ab, wo die aktuelle Aufzeichnung gespeichert wird. Bei der Operation 336 wird die Zählervariable für das Überspringen auch aktualisiert, um anzuzeigen, dass das Speichern der aktuellen Aufzeichnung nicht übersprungen werden sollte, weil die Aufzeichnung reparierbar war. Von der Operation 336 zweigt die Routine 300 zurück zur Operation 316 ab, wo die Überbleibenden bzw. die Reste der Aufzeichnungen der Datenstruktur 25 in der oben beschriebenen Art und Weise verarbeitet werden.
  • Wenn bei der Operation 334 festgelegt wird, dass die aktuelle Aufzeichnung nicht repariert werden konnte, zweigt die Routine 300 zur Operation 338 ab. Bei der Operation 338 wird eine Festlegung gemacht, ob die Anzahl der Aufzeichnungen, die zu überspringen sind, gleich Null ist. Dies würde der Fall sein, wo das Speichern im normalen Modus begonnen wurde und wo die erste beschädigte Aufzeichnung angetroffen wurde und die Aufzeichnung nicht reparierbar ist. In diesem Fall zweigt die Routine 300 zur Operation 340 ab, wo die Zählervariable für das Überspringen aktualisiert wird, um anzuzeigen, dass die Aufzeichnung übersprungen werden sollte. Die Routine 300 kehrt dann zur Operation 310 zurück, wo die Verarbeitung der Speicherstruktur 25 in der oben beschriebenen Art und Weist an den Anfang zurückkehrt.
  • Wenn bei der Operation 338 festgelegt bzw. bestimmt wird, dass die Anzahl der Variablen zu überspringender Aufzeichnungen nicht gleich Null ist, fährt die Routine 300 bei der Operation 342 fort, wo ein Versuch unternommen wird, das Speichern der aktuellen Aufzeichnung zu überspringen. Bei der Operation 344 wird eine Festlegung gemacht, ob das Speichern der aktuellen Aufzeichnung übersprungen werden sollte. Wenn das Speichern der aktuellen Aufzeichnung übersprungen werden kann, zweigt die Routine 300 zur Operation 346 ab, wo die Aufzeichnung in der Variablen für die zu überspringenden Aufzeichnungen gekennzeichnet wird. Die Routine fährt dann zur Operation 316 fort, wie oben beschrieben ist.
  • Wenn bei der Operation 344 bestimmt wird, dass die aktuelle Aufzeichnung nicht übersprungen werden kann, fährt die Routine 300 zur Operation 306 fort, wo die Variable für den Modus zu „minimal" gesetzt wird. Die Routine 300 fährt dann zur Operation 348 fort, wo ein Versuch unternommen wird, die Speicherstrukturen 25 im minimalen Modus zu speichern. Wie oben beschrieben wurde, werden im minimalen Modus nur Benutzerdaten gespeichert. Darüber hinaus wird ein Versuch unternommen, so viel wie möglich der Benutzerdaten zu speichern, wenn die Benutzerdaten auch beschädigt sind. Die Routine 300 fährt dann mit der Operation 320 fort, wo sie endet.
  • Basierend auf dem Vorangegangen sollte gewürdigt werden, dass die verschiedenen Ausführungsformen der Erfindung ein Verfahren, ein System, eine Vorrichtung und computerlesbare Medien zum Speichern der Inhalte eines Dokumentes umfassen, das in einer Struktur in einem flüchtigen Speicher in eine Datei bzw. einen Daten- oder Dateiordner gespeichert wird, der auf einem Massenspeichergerät gespeichert ist. Die obigen Spezifikationen, Beispiele und Daten stellen eine komplette Beschreibung der Herstellung und Verwendung der Zusammensetzung der Erfindung dar.

Claims (15)

  1. Verfahren zum Sichern des Inhalts einer Speicherstruktur (25), die in einem flüchtigen Speicher gespeichert ist und einen oder mehrere Abschnitte (26A, 26B, 26C, 26D, ..., 26N) hat, in eine Datendatei in einer Massenspeichervorrichtung (14), wobei das Verfahren umfasst: Unternehmen des Versuchs, jeden Abschnitt der Speicherstruktur in einem ersten Sicherungsmodus zu sichern, wobei in dem ersten Modus minimale Integritätsprüfung an jedes der Abschnitte durchgeführt wird, um festzustellen, ob ein Abschnitt der Datendatei beschädigt ist; und in Reaktion darauf, dass festgestellt wird, dass ein Abschnitt beschädigt ist, Unternehmen des Versuchs, den Inhalt der Speicherstruktur in einem zweiten Sicherungsmodus zu sichern, wobei umfangreichere Integritätsprüfung jedes der Abschnitte durchgeführt wird, um festzustellen, ob ein beschädigter Abschnitt repariert werden kann, und in Reaktion darauf, dass festgestellt wird, dass ein beschädigter Abschnitt nicht repariert werden kann, Auslassen der Sicherung des beschädigten Abschnitts.
  2. Verfahren nach Anspruch 1, wobei, wenn versucht wird, den Inhalt der Speicherstruktur in dem zweiten Sicherungsmodus zu sichern, eine Feststellung dahingehend getroffen wird, ob ein beschädigter Abschnitt repariert werden kann, und in Reaktion darauf, dass festgestellt wird, dass ein beschädigter Abschnitt repariert werden kann, Reparieren des beschädigten Abschnitts und Sichern des reparierten Abschnitts in die Datendatei.
  3. Verfahren nach Anspruch 2, das des Weiteren umfasst: Feststellen, ob das Sichern eines beschädigten Abschnitts, der nicht zu reparieren ist, ausgelassen werden kann; und in Reaktion darauf, dass festgestellt wird, dass das Sichern eines beschädigten Abschnitts, der nicht zu reparieren ist, nicht ausgelassen werden kann, Unternehmen eines Versuchs, den Inhalt der Speicherstruktur in einem dritten Sicherungsmodus zu si chern, wobei in dem dritten Sicherungsmodus nur Abschnitte der Speicherstruktur, die Benutzerdaten entsprechen, in die Datendatei gesichert werden.
  4. Verfahren nach Anspruch 3, wobei die Benutzerdaten von einem Benutzer eingegebene Textdaten umfassen.
  5. Verfahren nach Anspruch 3, wobei die Benutzerdaten von einem Benutzer eingegebene numerische Daten umfassen.
  6. Computerlesbares Medium, auf dem durch Computer ausführbare Befehle gespeichert sind, die, wenn sie von einem Computer ausgeführt werden, den Computer veranlassen: einen ersten Sicherungsmodus zum Sichern des Inhalts einer Speicherstruktur bereitzustellen, die einen oder mehrere Abschnitte (26A, 26B, 26C, ..., 26N) hat, von einem flüchtigen Speicher in eine Datendatei in einer Massenspeichervorrichtung (14), wobei minimale Integritätsprüfung jedes der Abschnitte durchgeführt wird, um festzustellen, ob ein Abschnitt der Datendatei beschädigt ist, wenn in dem ersten Sicherungsmodus gesichert wird; einen zweiten Sicherungsmodus zum Sichern des Inhalts der Speicherstruktur in die Datendatei bereitzustellen, wobei umfangreichere Integritätsprüfung jedes der Abschnitte durchgeführt wird, um festzustellen, ob ein beschädigter Abschnitt repariert werden kann, wobei in dem zweiten Sicherungsmodus das Sichern des beschädigten Abschnitts in Reaktion darauf ausgelassen wird, dass festgestellt wird, dass der beschädigte Abschnitt nicht repariert werden kann, mit dem Sichern des Inhalts der Speicherstruktur in dem ersten Sicherungsmodus zu beginnen; und in Reaktion darauf, dass festgestellt wird, dass ein Abschnitt beschädigt ist, zu dem zweiten Sicherungsmodus zu wechseln.
  7. Computerlesbares Medium nach Anspruch 6, wobei in dem zweiten Sicherungsmodus eine Feststellung dahingehend getroffen wird, ob ein beschädigter Abschnitt repariert werden kann, und in Reaktion darauf, dass festgestellt wird, dass ein beschädigter Ab schnitt repariert werden kann, der beschädigte Abschnitt repariert wird und der reparierte Abschnitt in die Datendatei gesichert wird.
  8. Computerlesbares Medium nach Anspruch 7, das des Weiteren durch Computer lesbare Befehle umfasst, die, wenn sie von dem Computer ausgeführt werden, den Computer veranlassen: einen dritten Sicherungsmodus bereitzustellen, wobei in dem dritten Modus nur Abschnitte der Speicherstruktur, die Benutzerdaten entsprechen, in die Datendatei gesichert werden; während er in dem zweiten Sicherungsmodus arbeitet, festzustellen, ob das Sichern eines beschädigten Abschnitts, der nicht zu reparieren ist, ausgelassen werden kann; und in Reaktion darauf, dass festgestellt wird, dass das Sichern eines beschädigten Abschnitts, der nicht zu reparieren ist, nicht ausgelassen werden kann, zu dem dritten Sicherungsmodus zu wechseln.
  9. Computerlesbares Medium nach Anspruch 8, wobei die Benutzerdaten von einem Benutzer eingegebene Textdaten umfassen.
  10. Computerlesbares Medium nach Anspruch 9, wobei die Benutzerdaten von einem Benutzer eingegebene numerische Daten umfassen.
  11. Computerlesbares Medium nach Anspruch 6, wobei ein Abschnitt beschädigt sein kann, wenn der Abschnitt einen unerwarteten Datenwert enthält.
  12. Computerlesbares Medium nach Anspruch 11, wobei ein Abschnitt des Weiteren beschädigt sein kann, wenn in dem Abschnitt Daten fehlen.
  13. Computerlesbares Medium nach Anspruch 12, wobei ein Abschnitt des Weiteren beschädigt sein kann, wenn der Abschnitt ungültige XML (Extensible Markup Language)-Daten enthält.
  14. Computerlesbares Medium nach Anspruch 13, wobei ein Abschnitt des Weiteren beschädigt sein kann, wenn Sichern des Abschnitts durch ein Anwendungsprogramm bewirkt, dass das Anwendungsprogramm abstürzt.
  15. Computerlesbares Medium nach Anspruch 14, wobei ein Abschnitt des Weiteren beschädigt sein kann, wenn der Abschnitt fehlt.
DE602005004872T 2004-12-20 2005-11-29 Verfahren und computerlesbarer Datenträger zum Überprüfen und Speichern eines elektronischen Dokuments Active DE602005004872T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US18916 2004-12-20
US11/018,916 US7337358B2 (en) 2004-12-20 2004-12-20 Method and computer-readable medium for verifying and saving an electronic document

Publications (2)

Publication Number Publication Date
DE602005004872D1 DE602005004872D1 (de) 2008-04-03
DE602005004872T2 true DE602005004872T2 (de) 2009-02-19

Family

ID=35709334

Family Applications (1)

Application Number Title Priority Date Filing Date
DE602005004872T Active DE602005004872T2 (de) 2004-12-20 2005-11-29 Verfahren und computerlesbarer Datenträger zum Überprüfen und Speichern eines elektronischen Dokuments

Country Status (12)

Country Link
US (2) US7337358B2 (de)
EP (1) EP1672502B1 (de)
JP (1) JP4298700B2 (de)
KR (1) KR101120859B1 (de)
CN (1) CN1794191B (de)
AT (1) ATE386980T1 (de)
AU (1) AU2005237165B2 (de)
BR (1) BRPI0505275A (de)
CA (1) CA2527015C (de)
DE (1) DE602005004872T2 (de)
MX (1) MXPA05012558A (de)
RU (1) RU2391720C2 (de)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7464104B2 (en) * 2004-12-20 2008-12-09 Microsoft Corporation Method and computer-readable medium for loading the contents of a data file
US7337358B2 (en) * 2004-12-20 2008-02-26 Microsoft Corporation Method and computer-readable medium for verifying and saving an electronic document
JP2007203524A (ja) * 2006-01-31 2007-08-16 Fujifilm Corp プリンタ、プリント方法およびプリントプログラム
US7669089B2 (en) * 2006-11-01 2010-02-23 Microsoft Corporation Multi-level file representation corruption
US7934128B2 (en) * 2008-06-05 2011-04-26 International Business Machines Corporation Methods, systems and computer program products for fault tolerant applications
US8832424B1 (en) * 2014-03-25 2014-09-09 David Milman Systems and methods for managing distributed sales, service and repair operations
US9804935B1 (en) * 2015-01-26 2017-10-31 Intel Corporation Methods for repairing a corrupted database to a new, correct state by selectively using redo and undo operations
CA2986613C (en) 2015-05-21 2020-04-28 Huawei Technologies Co., Ltd. Apparatus and method for video motion compensation
CN106940625B (zh) * 2017-03-15 2020-07-17 四川创能海博科技有限公司 智能电表的数据存储方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5491808A (en) * 1992-09-30 1996-02-13 Conner Peripherals, Inc. Method for tracking memory allocation in network file server
US5813009A (en) * 1995-07-28 1998-09-22 Univirtual Corp. Computer based records management system method
US6243831B1 (en) * 1998-10-31 2001-06-05 Compaq Computer Corporation Computer system with power loss protection mechanism
JP2001075949A (ja) 1999-09-02 2001-03-23 Mitsubishi Materials Corp 情報共有装置、方法、及び、その記録媒体
US6816984B1 (en) * 2000-06-23 2004-11-09 Microsoft Corporation Method and system for verifying and storing documents during a program failure
US6567826B1 (en) * 2000-06-23 2003-05-20 Microsoft Corporation Method and system for repairing corrupt files and recovering data
WO2002019075A2 (en) 2000-08-30 2002-03-07 Spectros Corporation System and method for client document certification and validation by remote host
US7346265B2 (en) * 2000-10-31 2008-03-18 Matsushita Electric Industrial Co., Ltd. Recording/reproducing apparatus, recording/reproducing method, medium, and program
US6606694B2 (en) * 2000-12-22 2003-08-12 Bull Hn Information Systems Inc. Write logging in mirrored disk subsystems
CN1197006C (zh) * 2001-02-20 2005-04-13 英业达股份有限公司 一种生成具有自检测和自修复功能的应用程序的方法
US7117229B2 (en) * 2001-05-31 2006-10-03 Computer Associates Think, Inc. Method and system for online reorganization of databases
US6832287B2 (en) * 2001-10-01 2004-12-14 International Business Machines Corporation System for fast tape file positioning
JP4184709B2 (ja) 2002-05-20 2008-11-19 松下電器産業株式会社 データ処理システム、データ処理方法およびデータ処理プログラム
JP2004185709A (ja) 2002-12-03 2004-07-02 Hitachi Ltd ディスク制御装置および交替処理方法
US7464104B2 (en) * 2004-12-20 2008-12-09 Microsoft Corporation Method and computer-readable medium for loading the contents of a data file
US7337358B2 (en) * 2004-12-20 2008-02-26 Microsoft Corporation Method and computer-readable medium for verifying and saving an electronic document

Also Published As

Publication number Publication date
KR101120859B1 (ko) 2012-03-16
JP2006178964A (ja) 2006-07-06
JP4298700B2 (ja) 2009-07-22
AU2005237165B2 (en) 2010-11-18
CA2527015A1 (en) 2006-06-20
AU2005237165A1 (en) 2006-07-06
DE602005004872D1 (de) 2008-04-03
MXPA05012558A (es) 2006-06-19
US20080126447A1 (en) 2008-05-29
US7337358B2 (en) 2008-02-26
KR20060070409A (ko) 2006-06-23
RU2005135846A (ru) 2007-05-27
CN1794191A (zh) 2006-06-28
CA2527015C (en) 2014-05-20
RU2391720C2 (ru) 2010-06-10
EP1672502B1 (de) 2008-02-20
US7890801B2 (en) 2011-02-15
EP1672502A1 (de) 2006-06-21
ATE386980T1 (de) 2008-03-15
BRPI0505275A (pt) 2006-09-12
US20060143542A1 (en) 2006-06-29
CN1794191B (zh) 2010-08-11

Similar Documents

Publication Publication Date Title
DE602005004872T2 (de) Verfahren und computerlesbarer Datenträger zum Überprüfen und Speichern eines elektronischen Dokuments
DE112010004947B4 (de) Wiederherstellung einer vollständigen Systemsicherung und inkrementeller Sicherungen unter Verwendung von mehreren gleichzeitigen Datenströmen von Einheiten
DE60304677T2 (de) Verfahren und vorrichtung zur bereitstellung einer inkrementellen wiederherstellung eines speichermediums bei datenverlust
DE4435751B4 (de) Dateiname- und Verzeichnis- Erfassungsverfahren zur Verwendung mit einem Betriebssystem
DE10211606B4 (de) Datenverarbeitungseinrichtung mit einem Metadatensicherungsmanagement
DE102008015662B4 (de) Beseitigung von Daten
DE60212125T2 (de) Kopierprozeduren mit verifikation in datennetzwerken
DE602005004166T2 (de) Vorrichtung, system und verfahren zur reinitialisierung einer serialisierung von dateisystemen
DE60306674T2 (de) Verfahren und systeme zur regelung des zugriffs auf ein datenobjekt mittels sperren
DE19926116A1 (de) Mehr-Teilprozeß-Protokollierung in einer Konfigurationsdatenbank
DE19844071A1 (de) Verfahren zum Lösen von Datenkonflikten in einem gemeinsamen Datenumfeld
DE4118454A1 (de) System zum automatischen testen von anwendersoftware
DE19734413C1 (de) Verfahren zum Aufrüsten einer Datenbank
DE102013201174A1 (de) Online-Überprüfung einer Standby-Datenbank in physischen Replikationsumgebungen mit Protokollversand
DE19964236C2 (de) Produkt zur schnellen Datensicherung und Datenübertragung
DE112010004264B4 (de) Selektiver Schreibschutz für das Austesten der Wiederherstellung nach einem Absturz
EP1067460B1 (de) Datenträger mit wiederherstellbarem Basisdatengrundzustand und Verfahren zu dessen Herstellung
DE19827432A1 (de) Verfahren zur Speicherung von Rechner-Zustandsdaten bei einem Störfall, der ein anschließendes Wieder-Hochfahren des Rechners erfordert
EP1701266A1 (de) Testvorrichtung zur Überprüfung einer Stapelverarbeitung
DE102005040916A1 (de) Speicheranordnung und Betriebsverfahren dafür
DE102004025264A1 (de) Datenverarbeitungseinrichtung und Verfahren zur Wiederherstellung eines Betriebszustandes
DE112010004185B4 (de) Synchronisieren einer Datenbank mit datenbankfremden Ressourcen
DE60210118T2 (de) Sicherheitseinrichtung für eine massenspeicherung
DE112019000401B4 (de) Ein chronologisch geordneter log-strukturierter schlüssel-wert-speicher für fehler bei der speicherbereinigung
DE112007002327T5 (de) Persistente Sperren auf Ressourcen zur Steuerung der Nebenläufigkeit

Legal Events

Date Code Title Description
8364 No opposition during term of opposition