DE69402540T2 - Rahmen-system für dokumente - Google Patents
Rahmen-system für dokumenteInfo
- Publication number
- DE69402540T2 DE69402540T2 DE69402540T DE69402540T DE69402540T2 DE 69402540 T2 DE69402540 T2 DE 69402540T2 DE 69402540 T DE69402540 T DE 69402540T DE 69402540 T DE69402540 T DE 69402540T DE 69402540 T2 DE69402540 T2 DE 69402540T2
- Authority
- DE
- Germany
- Prior art keywords
- command
- data
- document
- original document
- user
- 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.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 claims description 29
- 230000008859 change Effects 0.000 claims description 18
- 238000012545 processing Methods 0.000 claims description 18
- 230000004048 modification Effects 0.000 claims description 3
- 238000012986 modification Methods 0.000 claims description 3
- 230000004044 response Effects 0.000 claims 8
- 230000006870 function Effects 0.000 description 11
- 230000006399 behavior Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 238000013459 approach Methods 0.000 description 6
- 238000011161 development Methods 0.000 description 5
- 238000003860 storage Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000005538 encapsulation Methods 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000004883 computer application Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 230000003014 reinforcing effect Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
- 238000003892 spreading Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1471—Saving, restoring, recovering or retrying involving logging of persistent data for recovery
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/194—Calculation of difference between files
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Quality & Reliability (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Description
- Diese Patentanmeldung enthält urheberrechtlich geschütztes Material, dessen Reproduktion nur als Teil der Patentanmeldung zu informativen Zwecken gestattet ist. Alle anderen Rechte, insbesondere das Recht zur kommerziellen Verwertung derartigen Materials, sind vorbehalten.
- Die vorliegende Erfindung betrifft im allgemeinen Verbesserungen bei Computersystemen und insbesondere ein System und ein Verfahren für ein Dokumentenverarbeitungssystem mit hoher Verfügbarkeit.
- Die Dokumentenverarbeitung ist gegenwärtig die vorherrschende Anwendung der Computertechnologie. Beispiele für die Textverarbeitungstechnologie des Standes der Technik umfassen die Wordperfect Textverarbeitung und die Word Textverarbeitung der Microsoft Corporation. Diese Produkte sind so konstruiert, daß sie auf verschiedenen Betriebssystemen und unterschiedlichen Hardwareplattformen lauffähig sind. Einige der Hardwareplattformen und Betriebssysteme sind weniger zuverlässig als andere. Um einen Verlust von Daten oder anderen Informationen zu vermeiden, besitzen diese Produkte eine Sicherungseigenschaft, welche bei der Einstellung des Systems aktiviert werden kann. Die Sicherung erfolgt, wenn eine vom Anwender festgelegte Zeit verstrichen ist, sofern ein Anwender die Eigenschaft aktiviert. Wenn im System zwischen den Sicherungen ein Defekt auftritt, kommt es zu einem Verlust jener Informationen, die seit der letzten Sicherung neu eingegeben wurden. Auf ähnliche Weise steht diese Sicherungseigenschaft für Datenbank-, Grafik- und Bildanwendungen oder andere Computeranwendungen zur Verfügung. Somit kann jeder zwischen zwei Sicherungen auftretende Defekt für Computeranwendungen kostspielige Folgen haben.
- Das Technische Offenbarungsbulletin von IBM, Vol 33, Nr. 12, Seiten 304-305 (Mai 1991), offenbart ein Werkzeug, mit dessen Hilfe ein Smalltalk-Programmierer rasch und einfach einen Bildabsturz reparieren kann. Smalltalk/V verwendet eine als "Änderungsaufzeichnungsdatei" bezeichnete Datei, welche den Quellcode der Methoden enthält, die der Anwender im Laufe seiner Arbeit erstellt oder modifiziert hat. Diese Datei wird als Bestandteil des Umgebungsbildes betrachtet, welche insbesondere all das enthält, was der Anwender eingetippt hat. Diese Änderungen umfassen die Erstellung oder Modifizierung eines Verfahrens, das Löschen eines Verfahrens, die Erstellung oder Modifizierung einer Klasse und das Löschen einer Klasse sowie einer Historie des gesamten Smalltalk-Codes, den der Anwender explizit beim Testen seiner Anwendung ausgeführt hat.
- Während der Anwender die Umgebung modifiziert, werden die Änderungsaufzeichnungsdatei und der Klassenhierarchiedurchsucher dynamisch mit den Änderungen, die der Anwender durchgeführt hat, aktualisiert. Jede Änderung wird an das Ende der Änderungsaufzeichnungsdatei angehängt. Bei einem Systemabsturz muß der Anwender die Umgebung neu starten, die Änderungsaufzeichnungsdatei bearbeiten und manuell alle Änderungen extrahieren, die durchgeführt wurden, seit das Bild das letzte Mal gespeichert wurde. Dies ist sowohl mühsam als auch zeitaufwendig, und oft sind auch viele redundante Daten in den Änderungen enthalten, wie zum Beispiel ein Verfahren, das der Anwender mehrmals geändert hat, bis er mit den Änderungen zufrieden war. Die Änderungsaufzeichnungsdatei kann im Laufe der Entwicklung sehr groß werden.
- Die in der Referenz dargebotene Lösung ist ein Zusatz zur objektorientierten Umgebung eines neuen, als "ungesicherte Änderungen" bezeichneten, Verfahrens, welches jene Stelle in der Änderungsaufzeichnungsdatei speichert, wo das "Bild speichern" zuletzt durchgeführt wurde. Alle nach dem letzten Sichern durchgeführten Änderungen in der Umgebung werden wie zuvor immer noch an die Aufzeichnungsdatei angehängt. Wenn es jedoch zu einem Absturz kommt, werden nur die Änderungen von der gespeicherten Position bis zum Zustand unmittelbar vor dem Absturz durch Ausführung dieses Verfahrens rasch in die Umgebung gebracht, und danach wird der Inhalt des darüberliegenden Fensters eingefügt. Da nur die letzten Änderungen geladen werden, erhöht sich die Ladegeschwindigkeit wesentlich. Das Einfügen dieser Änderungen stellt die objektorientierte Umgebung rasch wieder in jenen Zustand her, der unmittelbar vor dem Absturz vorhanden war, und ermöglicht es dem Smalltalk-Anwender, mit der Fehlerbeseitigung und anderen Programmierarbeiten fortzusetzen.
- Software Practice & Experience, Vol 17, Nr. 11, Seite 813-845 (November 1987), offenbart einen interaktiven Texteditor für mehrere Dateien, der für Bitmap-Darstellungen gedacht ist. Eine textliche Befehlssprache ergänzt die mausgesteuerte Ausschneiden-und-Einfügen-Schnittstelle, um komplexe oder sich wiederholende Bearbeitungsaufgaben leichter durchführbar zu machen. Die Sprache ist gekennzeichnet durch die Zusammensetzung regulärer Ausdrücke zur Beschreibung der Struktur des zu modifizierenden Textes. Die Behandlung von Dateien als Datenbank mit Änderungen, die als atomare Transaktionen aufgezeichnet werden, leitet die Implementierung und erzeugt geradewegs einen allgemeinen "Rückgängigmachen"-Mechanismus. Sam wird als zwei Prozesse implementiert, die durch einen Strom mit geringer Bandbreite verbunden sind, wobei ein Prozeß für die Anzeige verantwortlich ist und der andere für die Bearbeitungsalgorithmen. Daher kann es mit dem Anzeigeprozeß in einem Bitmap-Terminal laufen und der Editor auf einem lokalen Host, mit beiden Prozessen auf einem Bitmap-Terminal und dem Editor auf einem lokalen Host, mit beiden Prozessen auf einem mit Bitmap ausgestatteten Host, oder mit dem Anzeigeprozeß im Terminal und dem Editor in einem Remote Host. Durch Unterdrückung des Anzeigeprozesses kann es sogar ohne Bitmap-Terminal laufen. Das System verwendet einen Cache, der sich im Speicher des Computers befindet.
- Sam verwaltet Dateiänderungen für Dateien mit variabler Länge, wobei es einen Algorithmus mit zwei Durchläufen für die Durchführung von Änderungen verwendet und jede Datei als eine Datenbank behandelt, für welche Transaktionen registriert werden. Änderungen werden nicht am Inhalt direkt vorgenommen. Stattdessen wird, wenn ein Befehl gestartet wird, eine "Markierung", welche eine Folgenummer enthält, in den Transkriptpuffer gestellt, und jede an der Datei durchgeführte Änderung, sei es eine Einfügung oder eine Löschung oder eine Änderung am Dateinamen, wird an das Ende des Transkripts angehängt. Wenn der Befehl fertig ausgeführt ist, wird der Transkript zur Markierung zurückgespult und am Inhalt angewandt. Sam bietet keine Möglichkeit, eine Rückgängigmachung rückgängig zu machen. Jede Markierung im Transkript enthält eine Folgenummer und einen Relativzeiger in das Transkript der vorhergehenden Markierung, um das Abspulen des Transkripts zu unterstützen.
- Das VIERTE JÄHRLICHE SYMPOSIUM ÜBER ANWENDERSCHNITT- STELLENSOFTWARE UND TECHNOLOGIE, 11. November 1991, US, Seite 107-115, H. Wang & M. Green, "Ein Ereignisobjekt- Wiederherstellungsmodell für objektorientierte Anwenderschnittstellen", diskutiert ein Ereigniswiederherstellungsmodell für eine objektorientierte Anwendung. Der in diesem Dokument befürwortete Ansatz trennt traditionelle Historien- und Befehlslisten in Pro-Objekt-Listen auf, welche gut in die objektorientierte Struktur passen. Einzigartige Merkmale dieses Rahmenwerks sind die hierarchische Struktur der lokalen Wiederherstellungsobjekte, welche die Anwendungsstruktur reflektieren, seine einfache Semantik und seine einfache Implementierung, welche es dem Schnittstellenersteller wesentlich erleichtern, es in bestehende objektorientierte Anwenderschnittstellenstrukturen zu integrieren. Keines der Bezugsdokumente lehrt ein Befehlsobjektaufzeichnungssystem zur Wiederherstellung von Dokumenten oder anderen Einheiten in einer objektorientierten Umgebung.
- Demgemäß ist es eine Hauptaufgabe der vorliegenden Erfindung gemäß den Ansprüchen, ein System und ein Verfahren zur automatischen Sicherung eines Dokumentes durch Anwendung objektorientierter Technologie an die Dokumentenverarbeitung zu schaffen. Das System sichert Änderungen eines Dokumentes automatisch als Befehlsobjekte, die in einem nichtflüchtigen Speicher aufgezeichnet werden. Danach wendet das System im Falle eines Stromausfalles oder eines anderen Problems die Änderungsobjekte in der Reihenfolge an, in denen sie in der Aufzeichnung gesichert wurden, um das Dokument oder ein anderes Anwendungsbild wiederherzustellen.
- Figur 1 ist ein Blockdiagramm eines Personalcomputersystems gemäß einer bevorzugten Ausführungsform;
- Figur 2A & 2B sind Flußdiagramme, welche die Verarbeitung darstellen, die gemäß einer bevorzugten Ausführungsform durchgeführt wird;
- Figur 3 ist ein Flußdiagramm, welches die Verarbeitung gemäß einer bevorzugten Ausführungsform darstellt, welche durchgeführt wird, wenn ein Dokument wiederhergestellt wird;
- Figur 4 ist ein Flußdiagramm, welches die Logik zeigt, die mit dem Sichern eines Dokumentes gemäß einer bevorzugten Ausführungsform in Zusammenhang steht.
- Die Erfindung wird vorzugsweise in Zusammenhang mit einem Betriebssystem angewandt, das sich auf einem Personalcomputer, wie zum Beispiel einem IBM PS/2 oder einem Apple Macintosh Computer, befindet. Eine repräsentative Hardwareumgebung wird in Figur 1 dargestellt, welche eine typische Hardwarekonfiguration einer Workstation gemäß der vorliegenden Erfindung darstellt und eine zentrale Recheneinheit 10, wie zum Beispiel einen herkömmlichen Mikroprozessor, mit einem eingebauten nicht-flüchtigen Speicher 11 und eine Anzahl anderer Einheiten umfaßt, die über einen Systembus 12 miteinander verbunden sind. Die in Figur 1 dargestellte Workstation umfaßt einen Direktzugriffsspeicher (RAM) 14, einen Nur-Lese-Speicher (ROM) 16, einen E/A- Adapter 18 zum Anschluß von Peripheriegeräten, wie zum Beispiel einer Festplatteneinheit 20, und einer Disketteneinheit 21 am Bus, einen Benutzerschnittstellenadapter 22 zum Anschluß einer Tastatur 24, einer Maus 26, eines Lautsprechers 20, eines Mikrophons 32 und/oder anderer Benutzerschnittstellengeräte, wie zum Beispiel eines Tast-Bildschirms (nicht dargestellt) am Bus, einen Kommunikationsadapter 34 zum Anschluß der Workstation an einem datenverarbeitenden Netzwerk und einen Anzeigenadapter 36 für den Anschluß eines Anzeigegerätes 30 am Bus. Typischerweise befindet sich auf der Workstation ein Betriebssystems, wie zum Beispiel das Betriebssystem IBM OS/2 Betriebssystem oder das Apple System/7 -Betriebssystem.
- In einer bevorzugten Ausführungsform wird die Erfindung in der Programmiersprache C++ mit Hilfe von objektorientierten Programmiertechniken implementiert. Ein Fachmann wird verstehen, daß es sich bei objektorientierten Programmierobjekten (OOP-Objekte) um Softwareeinheiten handelt, welche Datenstrukturen umfassen, sowie Operationen, die auf die Daten wirken. Gemeinsam werden Objekte durch die Elemente dazu befähigt, nahezu jede Echtwelteinheit bezüglich deren Eigenschaften, welche durch deren Datenelemente dargestellt werden, zu modellieren, und deren Verhalten wird durch deren Datenmanipulationsfunktionen dargestellt. Auf diese Weise können Objekte konkrete Dinge, wie zum Beispiel Personen und Computer, modellieren, und sie können abstrakte Konzepte, wie zum Beispiel Zahlen oder geometrische Konzepte, modellieren. Die Vorteile der Objekttechnologie ergeben sich aus drei Grundprinzipien: Einkapselung, Polymorphismus und Vererbung.
- Objekte verstecken die internen Strukturen ihrer Daten und die Algorithmen, nach denen ihre Funktionen arbeiten, bzw. kapseln diese ein. Anstatt diese Implementierungsdetails offenzulegen, präsentieren Objekte Schnittstellen, welche deren Abstraktionen säuberlich ohne unwesentliche Informationen darstellen. Polymorphismus ist eine weitere Stufe der Einkapselung. Der Gedanke, der dahintersteckt, ist: viele Formen, eine Schnittstelle. Eine Softwarekomponente kann eine Anforderung an eine andere Komponente stellen, ohne genau zu wissen, worum es sich bei dieser Komponente handelt. Die Komponente, welche die Anforderung erhält, interpretiert diese und berechnet aufgrund ihrer Variablen und Daten, wie die Anforderung auszuführen sei. Das dritte Prinzip ist die Vererbung, welche es Entwicklern ermöglicht, bereits bestehende Konstruktionen und Codes wieder zu verwenden. Durch diese Fähigkeit müssen Entwickler eine Software nicht immer von Grund auf neu erstellen. Stattdessen können Entwickler durch die Vererbung Subklassen ableiten, welche die Verhaltensweisen erben, die dann vom Entwickler den jeweiligen besonderen Anforderungen angepaßt werden.
- Ein Ansatz des Standes der Technik besteht darin, Objekte und Klassenbibliotheken in einer Prozedurumgebung zu schichten. Viele am Markt befindliche Anwendungsrahmenwerke verwenden diesen Konstruktionsansatz. In dieser Konstruktion befinden sich ein oder mehrere Objektschichten an der Spitze eines monolithischen Betriebssystems. Wenngleich dieser Ansatz alle Prinzipien der Einkapselung, des Polymorphismus und der Vererbung in der Objektschicht verwendet und eine wesentliche Verbesserung gegenüber den Prozedurprogrammiertechniken darstellt, weist dieser Ansatz auch gewisse Einschränkungen auf. Diese Probleme ergeben sich aus der Tatsache, daß es für einen Entwickler zwar einfach ist, seine eigenen Objekte wiederzuverwenden, aber schwierig ist, Objekte aus anderen Systemen zu verwenden, und der Entwickler daher immer noch gezwungen ist, mit prozeduralen Betriebssystemaufrufen (OS-Aufrufe) in tiefere Nichtobjekt-Schichten einzugreifen.
- Ein weiterer Aspekt des objektorientierten Programmierens ist ein Rahmenwerkansatz für die Anwendungsentwicklung. Eine der besten Definitionen für Rahmenwerke stammt von Ralph E. Johnson von der Universität von Illinois und Vincent F. Russo von Purdue. In ihrem 1991 veröffentlichten Papier mit dem Titel Wiederverwendung von objektorientierten Designs, technischer Bericht UIUCDCS91- 1696 von der Universität in Illinois, bieten sie folgende Definition an: "Eine abstrakte Klasse ist eine Konstruktion einer Reihe von Objekten, welche zusammenarbeiten, um eine Reihe von Pflichten auszuüben. Somit stellt ein Rahmenwerk eine Reihe von Objektklassen dar, welche zusammenarbeiten, um festgelegte Gruppen von Berechnungspflichten auszuführen." Vom Standpunkt des Programmierens her betrachtet handelt es sich bei Rahmenwerken im wesentlichen um Gruppen miteinander verbundener Objektklassen, welche eine vorgefertigte Struktur einer Arbeitsanwendung bieten. So könnte zum Beispiel ein Anwenderschnittstellenrahmenwerk die Unterstützung und das "Standard"-Verhalten zum Zeichnen von Fenstern, Rollbalken, Menüs usw. bieten. Da Rahmenwerke auf Objekttechnologie basieren, kann dieses Verhalten vererbt und außer Kraft gesetzt werden, damit Entwickler das Rahmenwerk erweitern und maßgeschneiderte Lösungen auf einem speziellen Wissensgebiet erstellen können. Dies ist ein wichtiger Vorteil gegenüber der herkömmlichen Programmierung, da der Programmierer nicht den ursprünglichen Code verändert, sondern stattdessen die Software erweitert. Darüberhinaus arbeiten sich Entwickler nicht blind durch Schichten von Codes hindurch, weil das Rahmenwerk eine strukturelle Führung und Modellierung bietet, zur selben Zeit aber auch den Entwickler befreit, um dann die spezifischen Maßnahmen, die für den jeweiligen Problembereich einzigartig sind, treffen zu können.
- Von einer geschäftlichen Perspektive aus betrachtet können Rahmenwerke als eine Möglichkeit angesehen werden, Expertenwissen in einem bestimmten Wissensbereich einzukapseln oder aufzunehmen. Firmeneigene Entwicklungsorganisationen, Unabhängige Softwareverkäufer (ISV) und Systemintegratoren haben Fachwissen in bestimmten Bereichen erworben, wie zum Beispiel bei der Herstellung, Buchhaltung oder bei Währungsumwandlungen. Dieses Fachwissen wird in ihren Code aufgenommen. Rahmenwerke ermöglichen es diesen Entwicklungsorganisationen, die allgemeinen Merkmale dieses Fachwissens durch Aufnahme in den Code der Organisation festzulegen und zu verpacken. Zum ersten erhalten Entwickler dadurch die Möglichkeit, eine Anwendung, welche das Fachwissen verwendet, zu erstellen oder zu erweitern, wodurch das Problem einmal gelöst wird und die Geschäftsregeln und die Konstruktion verstärkt und auf konsistente Weise angewendet werden. Ebenso sind Rahmenwerke und das in den Rahmenwerken steckende Fachwissen auch von strategischem Wert für jene Organisationen, die sich Fachwissen in vertikalen Märkten erarbeitet haben, wie zum Beispiel in der Fertigung, der Buchhaltung oder der Biotechnologie, und somit einen Verteilungsmechanismus für die Verpackung, den Wiederverkauf und die Ausnutzung ihres Fachwissens und den weiteren Fortschritt und die Ausbreitung der Technologie gefunden haben.
- Historisch gesehen haben sich die Rahmenwerke erst in jüngster Zeit als ein Hauptströmungskonzept auf Computerplattformen entwickelt. Diese Migration wurde durch die Verfügbarkeit objektorientierter Sprachen wie zum Beispiel C++ unterstützt. Traditionellerweise wurde C++ am häufigsten auf UNIX-Systemen und den Workstations von Forschern verwendet, und kaum auf Computern in kommerziellen Umgebungen. Sprachen wie C++ und andere objektorientierte Sprachen, wie zum Beispiel Smalltalk und andere, haben einer Reihe von Universitäts- und Forschungsprojekten geholfen, die Vorläufer der heutigen kommerziellen Rahmenwerke und Klassenbibliotheken zu schaffen. Einige Beispiele dafür wären Interviews von der Stanford-Universität, der Andrew- Befehlssatz von der Carnegie-Mellon Universität und das ET++-Rahmenwerk von der Zürich-Universität.
- Es gibt, je nach Niveau des Systems und der Art des Problems, viele Arten von Rahmenwerken. Die Arten der Rahmenwerke reichen von Anwendungsrahmenwerken, die bei der Entwicklung von Anwenderschnittstellen helfen, bis hin zu Rahmenwerken niedrigerer Ebene, welche grundlegende Systemsoftwaredienste wie zum Beispiel Kommunikation, Drukken, Ablagesystemunterstützung, Graphik usw. bieten. Kommerzielle Beispiele von Anwendungsrahmenwerken sind MacApp (Apple), Bedrock (Symantec), OWL (Borland), NeXTStep App Kit (NEXT), und Smalltalk-80 MVC (ParcPlace)
- Das Programmieren mit Rahmenwerken erfordert von den Entwicklern, die an andere Systemarten gewöhnt sind, eine neue Art des Denkens. Tatsächlich handelt es sich hierbei nicht mehr um das "Programmieren" im herkömmlichen Sinn. In älteren Betriebssystemen, wie zum Beispiel in DOS oder UNIX, schafft das eigene Programm des Entwicklers die gesamte Struktur. Das Betriebssystem bietet Dienstleistungen durch Systemaufrufe - das Programm des Entwicklers führt diese Aufrufe durch, wenn es die Dienstleistung benötigt, und die Kontrolle kehrt wieder zurück, nachdem die Dienstleistung zur Verfügung gestellt wurde. Die Programmstruktur basiert auf der Flußkontrolle, welche im Code enthalten ist, den der Entwickler schreibt.
- Wenn Rahmenwerke verwendet werden, ist dies genau umgekehrt. Der Entwickler ist nicht mehr für die Flußkontrolle verantwortlich. Der Entwickler muß auf die Tendenz verzichten, die Programmieraufgaben in bezug auf den Fluß der Ausführung verstehen zu wollen. Stattdessen muß sich das Denken auf die Verantwortlichkeiten der Objekte richten, welche sich auf das Rahmenwerk verlassen müssen, um zu bestimmen, wann die Tasks ausgeführt werden sollten. Vom Entwickler geschriebene Routinen werden von einem Code aktiviert, den der Entwickler nicht geschrieben hat, und den der Entwickler niemals sieht. Dieser Flipflop-Vorgang im Kontrollfluß kann eine wesentliche psychologische Barriere für Entwickler darstellen, die nur über Erfahrungen im prozeduralen Programmieren verfügen. Wenn dies jedoch einmal begriffen wird, erfordert das Rahmenwerk-Programmieren wesentlich weniger Aufwand als andere Arten des Programmierens.
- Ähnlich wie ein Anwendungsrahmenwerk dem Entwickler vorgefertigte Funktionalität bietet, übertragen Systemrahmenwerke, wie zum Beispiel jenes, das in einer bevorzugten Ausführungsform enthalten ist, dasselbe Konzept, indem sie Dienstleistungen auf Systemebene bieten, welche Entwickler, wie zum Beispiel Systemprogrammierer, verwenden, um Unterklassen zu bilden bzw. außer Kraft zu setzen, um maßgeschneiderte Lösungen zu schaffen. Man stelle sich zum Beispiel ein Multimedia-Rahmenwerk vor, welches die Grundlage für die Unterstützung von neuen und unterschiedlichen Geräten, wie zum Beispiel Audio, Video, MIDI, Animationen usw., bieten sollte. Der Entwickler, der eine neue Art von Gerät unterstützen soll, müßte einen Gerätetreiber schreiben. Um dies mit einem Rahmenwerk durchzuführen, muß der Entwickler nur die Eigenschaften und das Verhalten unterstützen, welches dem neuen Gerät eigentümlich ist.
- Der Entwickler bietet in diesem Fall eine Implementierung für bestimmte Mitgliederfunktionen, die vom Multimedia-Rahmenwerk aufgerufen werden. Ein unmittelbarer Vorteil für den Entwickler ist die Tatsache, daß der generische Code, der für die einzelnen Gerätekategorien benötigt wird, bereits vom Multimedia-Rahmenwerk zur Verfügung gestellt wird. Dies bedeutet, daß der Entwickler des Gerätetreibers weniger Code schreiben, testen und weniger Fehler beseitigen muß. Ein weiteres Beispiel für die Anwendung des Systemrahmenwerkes wären getrennte E/A-Rahmenwerke für SCSI- Geräte, NuBus-Karten und graphische Geräte. Weil es in diesem Zusammenhang eine vererbte Funktionalität gibt, bietet jedes einzelne Rahmenwerk Unterstützung für allgemeine Funktionalitäten, die in seiner Gerätekategone enthalten sind. Andere Entwickler könnten dann von diesen konsistenten Schnittstellen zu allen Arten von Geräten Gebrauch machen.
- Eine bevorzugte Ausführungsform übernimmt das Konzept der Rahmenwerke und wendet dieses im gesamten System an. Für den kommerziellen oder firmeninternen Entwickler, den Systemintegrator oder OEM bedeutet dies, daß all die Vorteile, die für ein Rahmenwerk, wie zum Beispiel MacApp, dargestellt wurden, nicht nur auf die Anwendungsebene für solche Dinge wie Text und Anwenderschnittstellen übertragen werden können, sondern auch auf die Systemebene, für Dienstleistungen wie zum Beispiel Graphiken, Multimedia, Dateisysteme, E/A, Testdurchführung usw.
- Die Anwendungserstellung in der Architektur einer bevorzugten Ausführungsform ist im wesentlichen gleich wie das Schreiben bereichsspezifischer Puzzleteilchen, die dem Rahmenwerkprotokoll unterstellt sind. Auf diese Weise ändert sich das gesamte Konzept des Programmierens. Anstelle des Schreibens einer Codezeile nach der anderen, welche mehrfache API-Hierarchien aufrufen, wird Software nunmehr entwickelt, indem Klassen von bereits bestehenden Rahmenwerken innerhalb dieser Umgebung abgeleitet werden, und indem danach je nach Bedarf neues Verhalten hinzugefügt und/oder vererbtes Verhalten außer Kraft gesetzt wird.
- Somit wird die Anwendung des Entwicklers zu einer Sammlung von Code, der geschrieben und von allen anderen Rahmenwerkanwendungen gleichermaßen benutzt wird. Dies stellt ein sehr mächtiges Konzept dar, weil Entwickler dadurch in der Lage sind, auf der Arbeit anderer aufzubauen. Dies gibt dem Entwickler auch die Flexibilität, ein Programm je nach Bedarf mehr oder weniger maßzuschneidern. Manche Rahmenwerke werden genau so verwendet werden, wie sie sind. In manchen Fällen wird das Ausmaß der maßgeschneiderten Anpassung minimal sein, so daß das Puzzleteilchen, das der Entwickler einfügt, ein kleines ist. In anderen Fällen kann der Entwickler sehr großzügige Veränderungen durchführen und etwas völlig neues schaffen. In einer bevorzugten Ausführungsform, wie sie in Figur 1 dargestellt ist, ist ein Programm, das sich im RAM 14 befindet und der Kontrolle der CPU 10 unterliegt, für die Verwaltung verschiedener Tasks unter Verwendung eines objektorientierten Dokumentenrahmenwerks verantwortlich.
- Andere Systeme, wie zum Beispiel das Apple Macintosh System 7, verwenden ein Modell, welches vom Anwender verlangt, daß er ein Dokument explizit sichert. Bei diesen Systemen öffnet der Anwender ein Dokument, führt einige Änderungen durch, und sichert das Dokument. Für gewöhnlich ersetzt die neue Version des Dokumentes die ältere, wenngleich manche Anwendungen eine oder mehrere zuvor gesicherte Versionen behalten.
- Bis der Anwender die Sicherung durchführen läßt, existieren die Änderungen nur innerhalb der Anwendung. Wenn die Anwendung oder das System abstürzt, gehen diese Änderungen verloren. Manche Anwendungen sichern Teile ihrer Daten auf Festplatte, und der Anwender mag in der Lage sein, einiges aus diesen Festplattendateien wiederherzustellen. Manche Anwendungen (z.B. Quicken und HyperCard am Macintosh) führen jedesmal auf wirksame Weise eine automatische Sicherung durch, wenn der Anwender etwas ändert. Dieses Verarbeitungsverfahren verhindert, daß der Anwender seine Arbeit aufgrund eines Absturzes verliert, aber der Anwender kann seine Arbeit aufgrund einer ungewollten Änderung verlieren. Andere Anwendungen zeichnen Prüfpunktdaten eines Dokumentes in einer separaten Datei auf, wenn der Anwender Seiten wechselt. Dies verhindert, daß der Anwender seine Arbeit auf anderen Seiten verliert, aber es verhindert nicht, daß er seine Arbeit auf der aktiven Seite verliert.
- Eine bevorzugte Ausführungsform zeichnet Prüfpunktdaten bei jeder Änderung des Dokumentes auf und zeichnet diese auf Festplatte auf. Im Falle eines Absturzes startet das System mit der zuletzt "gesicherten" Version und wiederholt alle Änderungen, die der Anwender durchgeführt hat, im Abgleich mit der Kopie. Das sich daraus ergebende Dokument ist identisch mit jenem Dokument, welches der Anwender zum Zeitpunkt des Absturzes hatte. Tatsächlich sichert das System automatisch ein gespeichertes Bild und eine Befehlsaufzeichnung. Das gespeicherte Bild zeichnet den Zustand des gesamten Dokumentes zu einem bestimmten Zeitpunkt auf, und die Befehlsaufzeichnung zeichnet alle Änderungen auf, die am Dokument seit diesem Zeitpunkt durchgeführt wurden.
- Wenn der Anwender das Dokument bearbeitet, ist der allgemeine Programmablauf wie folgt:
- Jedesmal, wenn ein Anwender eine Änderung am Dokument durchführt, wird eine Kopie des Befehlsobjektes, welches die Änderung darstellt, an das Ende einer Schlange gestellt.
- Ein separater Hintergrundtask nimmt die Befehlsobjekte aus der Schlange und sichert diese in der Befehlsaufzeichnung. Dieser Task wird mit niedrigerer Priorität ausgeführt, um die Ausführung dieser Maßnahme zu ermöglichen, wenn der Anwender nicht mit dem System interagiert, um die Auswirkungen auf die Produktivität des Anwenders so gering wie möglich zu halten.
- Das Befehlsobjekt wird normal verarbeitet, um das Dokument zu ändern.
- Figur 2 ist ein Flußdiagramm, welches die Verarbeitung darstellt, die in Übereinstimmung mit einer bevorzugten Ausführungsform ausgeführt wird. Die Verarbeitung beginnt am Punkt 200 und geht sofort zum Funktionsblock 210 weiter, um ein Dokument durch Laden des Dokumentes von einer Festplatte oder einem anderen Speichergerät zu öffnen. Ein Dokument könnte Text-, Grafik-, Bild-, Audio- oder andere Informationen enthalten. Der Entscheidungsblock 220 erkennt Änderungen, wenn sie am Dokument durchgeführt werden. Danach wird für jede am Dokument durchgeführte Änderung ein Befehlsobjekt erstellt und an das Ende einer Schlange im Speicher gestellt, wie dies im Funktionsblock 230 dargestellt ist. Schließlich ist ein Hintergrund-Task, der im Funktionsblock 230 dargestellt ist, dafür verantwortlich, die Aufzeichnung in einem nichtflüchtigen Speicher basierend auf den in der Schlange stehenden Objekten zu erstellen.
- Wenn ein Anwender ein Dokument öffnet, kommt es zu folgender Verarbeitung:
- Das gespeicherte Bild des Dokuments wird von einer Festplatte, einem Cache oder einem anderen Speicher geladen.
- Wenn die Befehlsaufzeichnung nicht leer ist, werden die in der Aufzeichnung enthaltenen Befehle wiederum abgespielt.
- Figur 3 ist ein Flußdiagramm, welches die Verarbeitung darstellt, die ausgeführt wird, wenn ein Dokument in Übereinstimmung mit einer bevorzugten Ausführungsform wiederhergestellt wird. Die Verarbeitung beginnt am Punkt 300 und geht sofort zum Funktionsblock 310 weiter, um ein gesichertes Dokument von einer Festplatte, einem Festplattencache oder einem anderen Speicher zu laden. Am Entscheidungsblock wird danach eine Entscheidung durchgeführt, um zu bestimmen, ob die Befehlsaufzeichnung leer ist. Wenn dies der Fall ist, ist das Dokument vollständig, und die Kontrolle wird zum Punkt 350 zurückgegeben. Wenn dies nicht der Fall ist, werden die in der Aufzeichnung gesicherten Befehle der Reihe nach wiederum abgespielt und am Dokument angewandt, wie dies im Funktionsblock 330 dargestellt ist, die Befehlsaufzeichnung wird beim Funktionsblock 340 gelöscht und die Kontrolle wird zum Punkt 350 zurückgegeben.
- Zu bestimmten Zeitpunkten wird das Dokument gesichert:
- Gesamtes Dokument im gesicherten Bild sichern.
- Befehlsaufzeichnung löschen.
- Figur 4 ist ein Flußdiagramm, welches die Logik darstellt, die mit dem Sichern eines Dokumentes in Übereinstimmung mit einer bevorzugten Ausführungsform in Zusammenhang steht. Die Verarbeitung beginnt am Punkt 400 und geht sofort zum Funktionsblock 410 weiter, um das Dokument zu sichern. Danach wird die Befehlsaufzeichnung am Funktionsblock 420 gelöscht, und die Kontrolle kehrt zum Punkt 430 zurück. Diese Verarbeitung kann auf Anforderung eines Anwenders, zu einer vom Anwender vorherbestimmten Zeit oder automatisch ausgeführt werden, wenn ein Dokument geschlossen wird.
- Die Ablagearchitektur definiert eine abstrakte Modellsicherung, welche sowohl das gesicherte Bild als auch eine Befehlsaufzeichnung enthält. Ein Dokument besteht aus einer Gruppe von separaten Modellobjekten, auf welche die Modellsicherung Zugriff bietet. Die Modellobjekte umfassen ein Dokumentenbild auf der Ebene der einzelnen Modelle. Typischerweise wird die Modellsicherung auf Festplatte gespeichert, aber ein Fachmann kann leicht erkennen, daß sich die Modellsicherung auch im Speicher, im Cache oder auf anderen Speichermedien befinden kann.
Claims (9)
1. Eine Einrichtung zur Änderung von Dokument-Daten, die ein
Originaldokument darstellen, in Abhängigkeit von
Öffnungs-, Änderungs- und Sicherungskommandos eines
Benutzers, und worin die in einem Speicher residenten
Dokument-Daten auch Objekte umfassen, die Änderungen im
Zustand der Dokument-Daten während ihrer Verarbeitung
wiedergeben, gekennzeichnet durch:
(a) Mittel (210) für ein Öffnungskommando eines
Benutzers zum Kopieren der Daten aus dem
Originaldokument in einen Arbeitsbereich;
(b) Mittel (220, 230), die auf jedes Änderungskommando
eines Benutzers ansprechen zur Erzeugung eines
Kommandoobjekts, das Kommandodaten zur
Identifizierung eines Datenteils des
Originaldokuments und Kommandomethoden zur Änderung
des Datenteils des Originaldokuments enthält;
(c) Mittel (240), die auf jedes Kommandoobjekt ansprechen
für die Ausführung von Kommandomethoden in jedem
Kommandoobjekt zur Änderung Datenteils des
Originaldokuments im Arbeitsbereich, um einen
modifizierten Datenteil des Dokuments im
Arbeitsbereich zu erzeugen;
(d) Mittel (270), die auf jedes Änderungskommando
ansprechen zur Speicherung des erzeugten
Kommandoobjekts im Speicher;
(e) Mittel (330), die auf jedes Sicherungskommando eines
Benutzers ansprechen zum Überschreiben der Daten des
Originaldokuments im Speicher mit den modifizierten
Dokument-Daten im Arbeitsbereich; und
(f) Mittel (340), die auf ein Überschreiben der Daten des
Originaldokuments ansprechen zum Löschen von
Kommandoobjekten im Speicher.
2. Die Einrichtung nach Anspruch 1, worin das Kommandoobjekt
Kommandomethoden zum Rückgängigmachen enthält, die mit dem
abgeänderten Datenteil ausgeführt werden zur Rückführung
des modifizierten Datenteils in den ursprünglichen
Datenteil.
3. Die Einrichtung nach Anspruch 1, worin das Kommandoobjekt
Kommandomethoden zur erneuten Ausführung enthält, die mit
dem ursprünglichen Datenteil ausgeführt werden zur
Wiederherstellung des modifizierten Datenteils.
4. Die Einrichtung nach Anspruch 1, die weiterhin ein
Modellobjekt aufweist, welches das Originaldokument und
einen Logbereich zur Speicherung der Kommandoobjekte
enthält.
5. Die Einrichtung nach Anspruch 1, worin die Daten des
Dokuments Text-, Graphik-, Bild- oder Audioinformation
enthalten.
6. Ein Verfahren zur Änderung von Dokument-Daten, die ein
Originaldokument darstellen, in Abhängigkeit von
Öffnungs-, Änderungs- und Sicherungskommandos eines
Benutzers, und worin die in einem Speicher residenten
Dokument-Daten auch Objekten umfassen, die Änderungen im
Zustand der Dokument-Daten während ihrer Verarbeitung
wiedergeben, gekennzeichnet durch:
(a) Kopieren der Daten aus dem Originaldokument in einen
Arbeitsbereich als Antwort auf ein Öffnungskommando
eines Benutzers (210);
(b) Erzeugen eines Kommandoobjektes, das Kommandodaten
zur Identifizierung eines Datenteils des
Originaldokuments und Kommandomethoden zur Änderung
des Datenteils des Originaldokuments enthält, als
Antwort auf jedes Änderungskommando eines Benutzers
(220, 230);
(c) Ausführen von Kommandomethoden in jedem
Kommandoobjekt zur Änderung Datenteils des
Originaldokuments im Arbeitsbereich, um einen
modifizierten Datenteil des Dokuments im
Arbeitsbereich zu erzeugen als Antwort auf jedes
Kommandoobjekt (240);
(d) Speichern des erzeugten Kommandoobjekts im Speicher
als Antwort auf jedes Änderungskommando (270);
(e) Überschreiben der Daten des Originaldokuments im
Speicher mit den modifizierten Dokument-Daten im
Arbeitsbereich als Antwort auf jedes
Sicherungskommando eines Benutzers (330); und
(f) Löschen von Kommandoobjekten im Speicher als Antwort
auf ein Überschreiben der Daten des Originaldokuments
(340).
7. Das Verfahren nach Anspruch 6, worin Schritt (b) den
Schritt enthält:
(bl) Erzeugen eines Kommandoobjekts, das Kommandomethoden
zum Rückgängigmachen enthält, die mit dem
abgeänderten Datenteil ausgeführt werden zur
Rückführung des modifizierten Datenteils in den
ursprünglichen Datenteil.
8. Das Verfahren nach Anspruch 6, worin Schritt (b) den
Schritt enthält:
(b2) Erzeugen Kommandoobjekts, das Kommandomethoden zur
erneuten Ausführung enthält, die mit dem
ursprünglichen Datenteil ausgeführt werden zur
Wiederherstellung des modifizierlen Datenteils.
9. Das Verfahren nach Anspruch 6, das weiterhin den Schritt
enthält:
(g) Erzeugen eines Modellobjekts, welches das
Originaldokument und einen Logbereich zur Speicherung
der Kommandoobjekte enthält.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/073,229 US5524190A (en) | 1993-06-04 | 1993-06-04 | Command object logging system for restoring documents |
PCT/US1994/000082 WO1994029801A1 (en) | 1993-06-04 | 1994-01-03 | Document framework system |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69402540D1 DE69402540D1 (de) | 1997-05-15 |
DE69402540T2 true DE69402540T2 (de) | 1997-11-13 |
Family
ID=22112512
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69402540T Expired - Lifetime DE69402540T2 (de) | 1993-06-04 | 1994-01-03 | Rahmen-system für dokumente |
Country Status (8)
Country | Link |
---|---|
US (1) | US5524190A (de) |
EP (1) | EP0693197B1 (de) |
JP (1) | JPH08511116A (de) |
CN (1) | CN1110065A (de) |
AU (1) | AU6391094A (de) |
CA (1) | CA2141932A1 (de) |
DE (1) | DE69402540T2 (de) |
WO (1) | WO1994029801A1 (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19826091A1 (de) * | 1998-06-12 | 1999-12-16 | Alcatel Sa | Verfahren zum gesicherten Ändern von in einer Datenbank gespeicherten Daten, Datenbanksystem und damit ausgestattetes Netzelement |
Families Citing this family (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5537526A (en) * | 1993-11-12 | 1996-07-16 | Taugent, Inc. | Method and apparatus for processing a display document utilizing a system level document framework |
US6272555B1 (en) | 1996-07-01 | 2001-08-07 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server-centric interprise computing framework system |
US6424991B1 (en) | 1996-07-01 | 2002-07-23 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server communication framework |
US6266709B1 (en) | 1996-07-01 | 2001-07-24 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server failure reporting process |
US5987245A (en) | 1996-07-01 | 1999-11-16 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture (#12) for a client-server state machine framework |
US6434598B1 (en) | 1996-07-01 | 2002-08-13 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server graphical user interface (#9) framework in an interprise computing framework system |
US5848246A (en) | 1996-07-01 | 1998-12-08 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server session manager in an interprise computing framework system |
US6038590A (en) | 1996-07-01 | 2000-03-14 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server state machine in an interprise computing framework system |
US5999972A (en) | 1996-07-01 | 1999-12-07 | Sun Microsystems, Inc. | System, method and article of manufacture for a distributed computer system framework |
US6304893B1 (en) | 1996-07-01 | 2001-10-16 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server event driven message framework in an interprise computing framework system |
US6067541A (en) * | 1997-09-17 | 2000-05-23 | Microsoft Corporation | Monitoring document changes in a file system of documents with the document change information stored in a persistent log |
US6842876B2 (en) * | 1998-04-14 | 2005-01-11 | Fuji Xerox Co., Ltd. | Document cache replacement policy for automatically generating groups of documents based on similarity of content |
US6731309B1 (en) * | 1998-08-28 | 2004-05-04 | Corel Corporation | Real time preview |
US6628305B1 (en) | 1998-11-09 | 2003-09-30 | International Business Machines Corporation | Architecture and definition of an extensible, object-oriented graphical user interface framework for managing and administering heterogenous digital library datastores |
US6295611B1 (en) * | 1998-12-14 | 2001-09-25 | Sun Microsystems, Inc.. | Method and system for software recovery |
JP2003503792A (ja) | 1999-06-30 | 2003-01-28 | マイクロソフト コーポレイション | コンピュータの前状態への回復 |
US6701454B1 (en) * | 2000-06-05 | 2004-03-02 | Microsoft Corporation | Method and system for recovering information during a program failure |
JP2002100126A (ja) * | 2000-09-18 | 2002-04-05 | Internatl Business Mach Corp <Ibm> | 記録再生装置、記憶装置、コンピュータ装置、データ処理方法、プログラム伝送装置 |
US8473478B2 (en) | 2000-09-21 | 2013-06-25 | Warren Roach | Automatic real-time file management method and apparatus |
US20020111992A1 (en) * | 2000-12-18 | 2002-08-15 | Copeland George P. | JSP composition in a cache for web applications with dynamic content |
US6807606B2 (en) | 2000-12-18 | 2004-10-19 | International Business Machines Corp. | Distributed execution coordination for web caching with dynamic content |
US6877025B2 (en) * | 2000-12-18 | 2005-04-05 | International Business Machines Corp. | Integrated JSP and command cache for web applications with dynamic content |
US6823360B2 (en) * | 2000-12-18 | 2004-11-23 | International Business Machines Corp. | Cofetching in a command cache |
US7702800B2 (en) | 2000-12-18 | 2010-04-20 | International Business Machines Corporation | Detecting and handling affinity breaks in web applications |
US6769075B2 (en) * | 2001-03-30 | 2004-07-27 | International Business Machines Corporation | Method and apparatus for performing emergency shutdown of a malfunctioning computer system saving all open files, data, and work in progress |
US6915449B2 (en) | 2001-03-30 | 2005-07-05 | International Business Machines Corporation | Method and apparatus for performing emergency shutdown of a malfunctioning computer system saving all open files, data, and work in progress to a remote data storage business entity |
US9189467B1 (en) * | 2001-11-07 | 2015-11-17 | Apple Inc. | Method and apparatus for annotating an electronic document |
US20050097288A1 (en) * | 2003-10-30 | 2005-05-05 | Richard Holzmann | System and method for monitoring and non-disruptive backup of data in a solid state disk system |
US7643917B2 (en) | 2004-08-26 | 2010-01-05 | Harman Becker Automotive Systems Gmbh | Vehicle multimedia system |
US20060184867A1 (en) * | 2005-02-17 | 2006-08-17 | Avraham Shpigel | Method for reusing definitions in documents and monitoring thereof |
CN100399322C (zh) * | 2005-12-02 | 2008-07-02 | 无锡永中科技有限公司 | 文件编辑环境的保存方法和恢复方法 |
US8433842B2 (en) * | 2007-06-29 | 2013-04-30 | Sandisk Technologies Inc. | Method for communicating with a non-volatile memory storage device |
US8429328B2 (en) * | 2007-06-29 | 2013-04-23 | Sandisk Technologies Inc. | System for communicating with a non-volatile memory storage device |
US9092128B2 (en) | 2010-05-21 | 2015-07-28 | Apple Inc. | Method and apparatus for managing visual information |
GB2492320B (en) * | 2011-06-21 | 2020-03-25 | Metaswitch Networks Ltd | Process recovery method and system |
US10540416B2 (en) | 2011-06-23 | 2020-01-21 | Microsoft Technology Licensing, Llc | Linking source code to running element |
US10534830B2 (en) * | 2011-06-23 | 2020-01-14 | Microsoft Technology Licensing, Llc | Dynamically updating a running page |
US11102313B2 (en) * | 2015-08-10 | 2021-08-24 | Oracle International Corporation | Transactional autosave with local and remote lifecycles |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4507751A (en) * | 1982-06-21 | 1985-03-26 | International Business Machines Corporation | Method and apparatus for logging journal data using a log write ahead data set |
DE3380643D1 (en) * | 1982-06-21 | 1989-11-02 | Ibm | Method and apparatus for restoring data in a computing system |
US4821220A (en) * | 1986-07-25 | 1989-04-11 | Tektronix, Inc. | System for animating program operation and displaying time-based relationships |
US4885717A (en) * | 1986-09-25 | 1989-12-05 | Tektronix, Inc. | System for graphically representing operation of object-oriented programs |
EP0280773A3 (de) * | 1987-01-09 | 1989-12-20 | International Business Machines Corporation | Methode zur Verbesserung der Wiederherstellung in transaktionsorientierten Datenverarbeitungssystemen |
US5072412A (en) * | 1987-03-25 | 1991-12-10 | Xerox Corporation | User interface with multiple workspaces for sharing display system objects |
JP2695802B2 (ja) * | 1987-11-16 | 1998-01-14 | 株式会社日立製作所 | 電子ファイル装置 |
US4974173A (en) * | 1987-12-02 | 1990-11-27 | Xerox Corporation | Small-scale workspace representations indicating activities by other users |
US5043866A (en) * | 1988-04-08 | 1991-08-27 | International Business Machines Corporation | Soft checkpointing system using log sequence numbers derived from stored data pages and log records for database recovery |
US4945474A (en) * | 1988-04-08 | 1990-07-31 | Internatinal Business Machines Corporation | Method for restoring a database after I/O error employing write-ahead logging protocols |
US4891630A (en) * | 1988-04-22 | 1990-01-02 | Friedman Mark B | Computer vision system with improved object orientation technique |
US4953080A (en) * | 1988-04-25 | 1990-08-28 | Hewlett-Packard Company | Object management facility for maintaining data in a computer system |
EP0347162A3 (de) * | 1988-06-14 | 1990-09-12 | Tektronix, Inc. | Einrichtung und Verfahren zum Steuern von Datenflussprozessen durch erzeugte Befehlsfolgen |
US5107443A (en) * | 1988-09-07 | 1992-04-21 | Xerox Corporation | Private regions within a shared workspace |
US5121478A (en) * | 1988-09-08 | 1992-06-09 | Xerox Corporation | Window system with independently replaceable window functionality |
US5041992A (en) * | 1988-10-24 | 1991-08-20 | University Of Pittsburgh | Interactive method of developing software interfaces |
US5159669A (en) * | 1988-12-15 | 1992-10-27 | Xerox Corporation | Automatically creating a second workspace operation record including history data and a unit ID based on a first workspace operation |
US5133075A (en) * | 1988-12-19 | 1992-07-21 | Hewlett-Packard Company | Method of monitoring changes in attribute values of object in an object-oriented database |
US5089958A (en) * | 1989-01-23 | 1992-02-18 | Vortex Systems, Inc. | Fault tolerant computer backup system |
US5050090A (en) * | 1989-03-30 | 1991-09-17 | R. J. Reynolds Tobacco Company | Object placement method and apparatus |
US5060276A (en) * | 1989-05-31 | 1991-10-22 | At&T Bell Laboratories | Technique for object orientation detection using a feed-forward neural network |
US5125091A (en) * | 1989-06-08 | 1992-06-23 | Hazox Corporation | Object oriented control of real-time processing |
US5181162A (en) * | 1989-12-06 | 1993-01-19 | Eastman Kodak Company | Document management and production system |
US5093914A (en) * | 1989-12-15 | 1992-03-03 | At&T Bell Laboratories | Method of controlling the execution of object-oriented programs |
US5075848A (en) * | 1989-12-22 | 1991-12-24 | Intel Corporation | Object lifetime control in an object-oriented memory protection mechanism |
DE69126066T2 (de) * | 1990-06-29 | 1997-09-25 | Oracle Corp | Verfahren und Gerät zur Optimierung des Logbuchaufhebungsgebrauchs |
US5151987A (en) * | 1990-10-23 | 1992-09-29 | International Business Machines Corporation | Recovery objects in an object oriented computing environment |
US5119475A (en) * | 1991-03-13 | 1992-06-02 | Schlumberger Technology Corporation | Object-oriented framework for menu definition |
-
1993
- 1993-06-04 US US08/073,229 patent/US5524190A/en not_active Expired - Lifetime
-
1994
- 1994-01-03 DE DE69402540T patent/DE69402540T2/de not_active Expired - Lifetime
- 1994-01-03 CN CN94190303A patent/CN1110065A/zh active Pending
- 1994-01-03 AU AU63910/94A patent/AU6391094A/en not_active Abandoned
- 1994-01-03 CA CA002141932A patent/CA2141932A1/en not_active Abandoned
- 1994-01-03 EP EP94911367A patent/EP0693197B1/de not_active Expired - Lifetime
- 1994-01-03 WO PCT/US1994/000082 patent/WO1994029801A1/en active IP Right Grant
- 1994-01-03 JP JP7501718A patent/JPH08511116A/ja not_active Ceased
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19826091A1 (de) * | 1998-06-12 | 1999-12-16 | Alcatel Sa | Verfahren zum gesicherten Ändern von in einer Datenbank gespeicherten Daten, Datenbanksystem und damit ausgestattetes Netzelement |
Also Published As
Publication number | Publication date |
---|---|
CA2141932A1 (en) | 1994-12-22 |
US5524190A (en) | 1996-06-04 |
EP0693197A1 (de) | 1996-01-24 |
DE69402540D1 (de) | 1997-05-15 |
EP0693197B1 (de) | 1997-04-09 |
CN1110065A (zh) | 1995-10-11 |
AU6391094A (en) | 1995-01-03 |
WO1994029801A1 (en) | 1994-12-22 |
JPH08511116A (ja) | 1996-11-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69402540T2 (de) | Rahmen-system für dokumente | |
DE69400870T2 (de) | Dynamisches verknüpfungssystem | |
DE69031491T2 (de) | Hypertextdatenverarbeitungssystem und Verfahren | |
DE69303289T2 (de) | Steuersystem für anzeigemenüzustand | |
DE69310187T2 (de) | Objektorientiertes fachwerksystem | |
DE69402523T2 (de) | Objektorientiertes systembestimmungssystem | |
DE69310202T2 (de) | Internationales datenverarbeitungssystem | |
DE69304928T2 (de) | Atomares befehlsystem | |
EP0502857B1 (de) | Verfahren zur dynamischen bindung von definierbaren programmelementen eines interaktiven datenverarbeitungssystems | |
DE60319229T2 (de) | Verfahren und system zur erweiterung der api eines dateisystems | |
DE69400436T2 (de) | Run-time lader | |
DE69310214T2 (de) | Dialogsystem | |
DE69310188T2 (de) | Objektorientiertes bestaetigungssystem | |
DE10121790B4 (de) | Softwarekonfigurationsverfahren zur Verwendung in einem Computersystem | |
DE3586273T2 (de) | Implizite erzeugung einer superblockstruktur in einem vieldaten-edierungsgeraet. | |
DE69310201T2 (de) | Objektorientierte applikationsschnittstelle. | |
DE3586274T2 (de) | Vieldaten-edierungsgeraet mit gebrauch von attributstroemen fuer textobjekte. | |
DE3750188T2 (de) | Verfahren zur In-Linie Implementierung einer Vorstellung in einem Informationsverarbeitungssystem. | |
DE60025488T2 (de) | Vorrichtung und verfahren zur allgemeinen koordination und verwaltung von mehrfachen schnappschussanbietern | |
DE60008397T2 (de) | Benutzer emulation für datenaustausch beim rechnergestützten entwurf | |
DE3586272T2 (de) | Integriertes vieldaten-edierungsgeraet. | |
DE60008498T2 (de) | Verfahren und System zum Addieren und Löschen von Elementen in einem Bereich von mit Namen versehenen Zellen entsprechend verschiedener Methoden in einem elektronischen Kalkulationsblatt | |
DE60025043T2 (de) | Vorrichtung und verfahren mit verwendung von anwendungabhängigkeitsinformation für eine sicherungskopieherstellung in einem computersystem | |
DE19705955A1 (de) | Verfahren zum Generieren einer Implementierung eines Workflow-Prozessmodells in einer Objektumgebung | |
DE10307927A1 (de) | System und Verfahren zum Bewahren von Metadaten in einer elektronischen Bilddatei |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8327 | Change in the person/name/address of the patent owner |
Owner name: OBJECT TECHNOLOGY LICENSING CORP., CUPERTINO, CALI |