DE68928811T2 - Verkapselungssystem für ein Rechnersystem - Google Patents

Verkapselungssystem für ein Rechnersystem

Info

Publication number
DE68928811T2
DE68928811T2 DE68928811T DE68928811T DE68928811T2 DE 68928811 T2 DE68928811 T2 DE 68928811T2 DE 68928811 T DE68928811 T DE 68928811T DE 68928811 T DE68928811 T DE 68928811T DE 68928811 T2 DE68928811 T2 DE 68928811T2
Authority
DE
Germany
Prior art keywords
file
application
data
encapsulation
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 - Fee Related
Application number
DE68928811T
Other languages
English (en)
Other versions
DE68928811D1 (de
Inventor
William M Crow
Yitzchak Ehrlich
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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of DE68928811D1 publication Critical patent/DE68928811D1/de
Application granted granted Critical
Publication of DE68928811T2 publication Critical patent/DE68928811T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0489Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using dedicated keyboard keys or combinations thereof
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • G06F8/24Object-oriented
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)

Description

  • Die vorliegende Erfindung bezieht sich auf die Verkapselung von Anwendungen, die auf einer Objektverwaltungseinrichtung laufen gelassen werden sollen. Ein Problem, das die Computeranwendung erschwert, sind ineffiziente Dateiverwaltungssysteme. Beispielsweise können bei einem Verzeichnis nicht zwei Dateien mit dem gleichen Namen existieren.
  • Ferner gibt es eine Dateninkompatibilität zwischen Datendateien, die durch unterschiedliche Computeranwendungen erzeugt wurden. Typischerweise arbeitet jede Computeranwendung unabhängig von anderen Computeranwendungen. Es ist sehr selten, daß Daten von einer Computeranwendung effektiv in Daten von einer anderen Anwendungen aufgenommen werden können. Wenn Daten aufgenommen werden, ist es schwierig, wenn nicht unmöglich, dieselben zu modifizieren. Außerdem ist es, sobald Daten von einer ersten Anwendung zu einer zweiten Anwendung übertragen wurden, üblicherweise unmöglich, die Daten, die modifiziert werden sollen, zu der ersten Anwendung zurückzuschicken.
  • Sobald eine Umgebung vorhanden ist, die die effektive Übertragung von Daten zwischen Anwendungen ermöglicht, bleibt das Problem der Aufwärtskompatibilität für Anwendungen bestehen, die nicht ursprünglich entworfen wurden, um in der Umgebung zu funktionieren.
  • Die US-A-4205371 beschreibt ein Datenbankumwandlungssystem, das es ermöglicht, daß Programme, die für einen Betrieb in einer Umgebung geschrieben wurden, d. h. für ein spezielles Computersystem, in einer zweiten (anderen) Umgebung laufen gelassen werden können. Um dies zu erreichen, verwendet das Umwandlungssystem eine Anzahl von Computeremulatorroutinen, die auf einem primitiven Niveau unter Verwendung von gespeicherten Tabellen und speziellen Routinen arbeiten, die einen Bezug auf beide Benutzeranwendungen ermöglichen, derart, daß das Umwandlungssystem die Programmumwandlung bewirken kann, ohne daß die Logik der ursprünglich geschriebenen Programme neu geschrieben oder verändert werden muß.
  • Das Ziel der vorliegenden Erfindung besteht darin, eine verbesserte Anordnung zum Erleichtern des Laufenlassens von Anwendungen auf einem Computersystem zu schaffen, die nicht zum Laufenlassen auf dem System entworfen wurden.
  • Die vorliegende Erfindung bezieht sich auf ein Verkapselungssystem für ein Datenverarbeitungssystem mit einer Objektverwaltungseinrichtung, die eine erste Mehrzahl von Objekten verwaltet, wobei jedes Objekt auf eine Anwendung Bezug nimmt, die entworfen wurde, um in Verbindung mit der Objektverwaltungseinrichtung zu laufen.
  • Gemäß einem Aspekt der vorliegenden Erfindung ist ein Verkapselungssystem gemäß Anspruch 1 geschaffen.
  • Gemäß einem weiteren Aspekt der vorliegenden Erfindung ist ein Verfahren zum Erleichtern des Laufenlassens eines Datenverarbeitungssystems gemäß Anspruch 4 geschaffen.
  • Gemäß dem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung ist ein Datenverarbeitungssystem mit einer Objektverwaltungseinrichtung dargestellt. Die Objektverwaltungseinrichtung verwaltet eine Mehrzahl von Objekten. Jedes Objekt bezieht sich auf eine Anwendung, die entworfen wurde, um in Verbindung mit der Objektverwaltungseinrichtung zu laufen. Das Datenverarbeitungssystem umfaßt ferner ein Verkapselungssystem, das die Aufnahme einer ersten Anwendung, die nicht entworfen wurde, um in Verbindung mit der Objektverwaltungseinrichtung zu laufen, in das Computersystem erleichtert. Das Verkapselungssystem umfaßt eine Verkapselungsschale (Verkapselungsshell) und ein Schalenfilter (Shellfilter). Auf die Verkapselungsschale wird durch Objekte derart Bezug genommen, als ob die Verkapselungsschale eine Anwendung ist, die entworfen wurde, um in Ver bindung mit der Objektverwaltungseinrichtung zu laufen. Die Verkapselungsschale wirkt ferner als eine Schnittstelle zwischen der Objektverwaltungseinrichtung und der ersten Anwendung. Das Schalenfilter wechselwirkt mit der Verkapselungsschale, und dasselbe ist auf Anweisung von der Verkapselungsschale in der Lage, Anweisungen von einem Benutzer zu der ersten Anwendung abzufangen. Das Schalenfilter leitet ferner Anweisungen zu der ersten Anwendung weiter, die durch die Verkapselungsschale erzeugt werden.
  • Die Verkapselungsschale kann für eine Vielfalt von Anwendungen verwendet werden. Damit die Verkapselungsschale spezielle Informationen über eine spezielle Anwendung erfahren kann, sind jeder Anwendung, die durch die Verkapselungsschale verkapselt werden soll, Konfigurationseigenschaften zugeordnet. Ähnlich kann eine Menü/Makro-Definitionsdatei einer verkapselten Anwendung zugeordnet werden, und auf dieselbe kann durch die Verkapselungsschale zugegriffen werden, um Makros und Menüs zu definieren, die dem Benutzer durch die Verkapselungsschale und das Schalenfilter verfügbar gemacht werden.
  • Fig. 1 ist ein Blockdiagramm eines Computers gemäß dem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung.
  • Fig. 2 zeigt ein Blockdiagramm, das die Beziehung zwischen Objekten, Anwendungen und Datendateien gemäß dem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung darstellt.
  • Fig. 2A ist ein Blockdiagramm, das die Klasseneigenschaften, die einer Anwendung zugeordnet sind, und Objekteigenschaften zeigt, die Objekten gemäß dem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung zugeordnet sind.
  • Fig. 3 zeigt eine Mehrzahl von Objekten, die gemäß einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung verbunden sind.
  • Fig. 4 zeigt eine Serie von Objekten, die als Ordner, als Eltern von Objekten, die Daten enthalten, gemäß einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung dienen.
  • Fig. 5 stellt die Bildschirmanzeige dar, die aus dem Verbinden von verschiedenen Objekten gemäß einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung resultiert.
  • Fig. 6 zeigt das Verbinden von Objekten, um die in Fig. 5 gezeigte Bildschirmanzeige zu erzeugen.
  • Fig. 7 zeigt, wie drei Objekte miteinander gemäß einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung verbunden werden können.
  • Fig. 8 und 9 stellen dar, wie ein Objekt gemäß einem bevorzug- ten Ausführungsbeispiel der vorliegenden Erfindung kopiert werden kann.
  • Fig. 10 und 11 stellen das Kopieren eines öffentlichen Objekts gemäß einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung dar.
  • Fig. 12 bis 71 zeigen das Erscheinungsbild einer Sitzung auf einem Bildschirm, bei der ein Benutzer Objekte gemäß einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung manipuliert. Ferner sind Blockdiagramme gezeigt, wie Objekte, die dem Benutzer erscheinen, gemäß dem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung verbunden werden.
  • Fig. 72 ist ein Blockdiagramm einer Objektverwaltungseinrichtung (OMF; OMF = Object Management Facility) gemäß dem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung.
  • Fig. 73 zeigt ein Blockdiagramm der Einteilung von HPOMF. CAT, einer Systemdatei, die in der in Fig. 72 gezeigten OMF umfaßt ist.
  • Fig. 74 zeigt die Beziehung zwischen globalen Eltern und globalen Objekten gemäß dem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung.
  • Fig. 75 ist ein Blockdiagramm, das zeigt, wie Systemdateien innerhalb der in Fig. 72 gezeigten OMF auf Datendateien und Anwendungen von einem Speicher, der in Fig. 1 gezeigt ist, zugreifen.
  • Fig. 76 ist ein Blockdiagramm der Einteilung des in Fig. 75 gezeigten Speichers.
  • Fig. 77 und 78 zeigen Objekte und Verbindungen gemäß dem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung.
  • Fig. 79 ist ein Blockdiagramm der Einteilung von HPOMF. XRF, einer Systemdatei, die in der in Fig. 72 gezeigten OMF umfaßt ist.
  • Fig. 80 zeigt einen Ansichtsspezifikationsdatensatz gemäß dem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung.
  • Fig. 81 zeigt die Verwendung eines Schnappschusses gemäß einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung.
  • Fig. 82 zeigt den Datenweg einer Ansicht gemäß einem be vorzugten Ausführungsbeispiel der vorliegenden Erfindung, wenn es keinen Schnappschuß gibt.
  • Fig. 83 zeigt den Datenweg einer Ansicht gemäß einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung, wenn es einen Schnappschuß gibt.
  • Fig. 84 zeigt eine Verkapselungsschale, die mit der in Fig. 72 gezeigten OMF gemäß dem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung wechselwirkt.
  • Fig. 84A zeigt eine Dateistruktur für den in Fig. 1 gezeigten Computer gemäß dem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung.
  • Fig. 84B zeigt die Anatomie einer Dateispezifikation für Programme, die auf dem MS-DOS-Betriebssystem funktionieren.
  • Fig. 85 bis 120 und 123 bis 140 zeigen das Erscheinungsbild einer Sitzung auf einem Bildschirm, bei der ein Benutzer Objekte für Anwendungen manipuliert, die durch die in Fig. 84 gezeigte Verkapselungsschale verkapselt sind.
  • Fig. 121 und 122 zeigen ein Flußdiagramm, das die Schritte beschreibt, die durch die Verkapselungsschale vorgenommen werden, wenn ein Programm geschlossen wird.
  • Fig. 141 enthält ein Flußdiagramm, das den Prozeß offenbart, der durch die in Fig. 84 gezeigte Verkapselungsschale durchgeführt wird, wenn ein Objekt für eine verkapselte Anwendung gemäß dem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung geöffnet wird.
  • Fig. 142 enthält ein Flußdiagramm, das den Prozeß offenbart, der durch die in Fig. 84 gezeigte Verkapse lungsschale durchgeführt wird, wenn eine Datei aktiviert wird.
  • Fig. 143 enthält ein Flußdiagramm, das den Prozeß offenbart, der durch die in Fig. 84 gezeigte Verkapselungsschale durchgeführt wird, wenn ein Objekt für eine verkapselte Anwendung gemäß dem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung erzeugt wird.
  • Fig. 144 zeigt die Datensatztypen innerhalb der Datei HPOMF.DOS gemäß dem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung.
  • Fig. 145 zeigt die logische Struktur der Datensätze innerhalb der Datei HPOMF.DOS gemäß dem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung.
  • Fig. 1 zeigt einen Computer 18 mit einem Monitor 14, einer Tastatur 19 und einer Maus 20. Ein Abschnitt des Computerhauptspeichers 17 ist durch einen Pfeil 9 als sich innerhalb des Computers 18 befindend gezeigt. Innerhalb des Computerhauptspeichers 17 ist eine Objektverwaltungseinrichtung (OMF) 100, eine Anwendung 101, eine Anwendung 102, eine Anwendung 103, eine Anwendung 104, eine Anwendung 105 und eine Anwendung 106 gezeigt.
  • Jede der Anwendungen 101 bis 106 speichert Daten unter Verwendung von Objekten. Beispielsweise ist in Fig. 2 gezeigt, daß die Anwendung 101 unter Verwendung eines Objekts 202, eines Objekts 203, eines Objekts 204 und eines Objekts 205 Daten gespeichert hat. Ähnlich ist für die Anwendung 106 gezeigt, daß dieselbe Daten in einem Objekt 207, einem Objekt 208, einem Objekt 209 und einem Objekt 210 gespeichert hat. Die OMF 100 speichert Informationen, die anzeigen, welche Objekte zu welcher Anwendung gehören. Die Objekte, die einer einzigen Anwendung zugeordnet sind, werden als Objekte des gleichen Typs oder der gleichen Klasse betrachtet. Beispielsweise sind die Objekte 202, 203, 204 und 205 aus derselben Klasse, da jedes derselben der Anwendung 101 zugeordnet ist. Ähnlich sind die Objekte 207, 208, 209 und 210 aus der selben Klasse, da jedes derselben der Anwendung 106 zugeordnet ist. Alle Objekte der gleichen Klasse verwenden die gleiche Anwendung. Wenn eine Anwendung durch den Computer 18 laufen gelassen wird, informiert die OMF 100 die Anwendung, auf welches Objekt die Anwendung für Daten zugreifen sollte. Dieses Objekt wird dann als aktiv betrachtet. Ein Objekt ist inaktiv, wenn die Anwendung, der das Objekt zugeordnet ist, nicht durch den Computer 18 laufen gelassen wird, oder wenn die Anwendung, der das Objekt zugeordnet ist, laufen gelassen wird, jedoch nicht mit den Daten dieses Objekts laufen gelassen wird.
  • Aktive Objekte können miteinander unter Verwendung von Nachrichten kommunizieren. Beispielsweise sind, wenn zwei Beispiele von Anwendungen 101 durch den Computer 18 laufen gelassen werden, eine mit den Daten von Objekt 202 und die andere mit den Daten von Objekt 203, sowohl das Objekt 202 als auch das Objekt 203 aktiv. Daher kann das Objekt 202 eine Nachricht 211 zu dem Objekt 203 senden. Ähnlich sind, wenn der Computer 18 die Anwendung 101 mit den Daten von Objekt 202 laufen läßt, und derselbe die Anwendung 106 mit den Daten von Objekt 207 laufen läßt, sowohl das Objekt 202 als auch das Objekt 207 aktiv. Daher kann das Objekt 202 eine Nachricht 212 zu dem Objekt 207 senden.
  • Nachrichten, wie z. B. die Nachricht 211 und 212, können formatiert werden, so daß dieselben durch alle Objekttypen gesendet und empfangen werden können. Dies ermöglicht eine freie Kommunikation zwischen allen aktiven Objekten. Dies ermöglicht ferner, daß neue Objekttypen definiert und zu dem System hinzugefügt werden können, ohne daß es erforderlich ist, daß die existierenden Objekttypen aktualisiert werden müssen, um den neuen Typ verwenden zu können.
  • Jedem Objekt ist ein Satz von Datendateien zugeordnet. Beispielsweise ist für das Objekt 210 gezeigt, daß demselben eine Datendatei 221, eine Datendatei 222 und eine Datendatei 223 zugeordnet sind. Die Daten in den Datendateien 221, 222 und 223 sind in einem Format, das durch die Anwendung 106 übersetzt werden kann.
  • Jedem Objekt ist eine Eigenschaftenliste zugeordnet. Jede Eigenschaft weist einen Namen und einen Wert auf, auf die durch Spezifizieren des Namens zugegriffen werden kann. Zusätzlich ist jeder Objektklasse eine Liste von Eigenschaften zugeordnet, die allen Objekten dieser Klasse gemeinsam sind. Beispielsweise sind in Fig. 2A das Objekt 205 und die Anwendung 101 gezeigt. Dem Objekt 205 ist eine Eigenschaft 231, eine Eigenschaft 232 und eine Eigenschaft 233 zugeordnet. Der Anwendung 101 ist eine Eigenschaft 131, eine Eigenschaft 132 und eine Eigenschaft 133 zugeordnet.
  • Eigenschaftslisten können jede beliebige Anzahl von Eigenschaften enthalten. Jeder Eigenschaftswert kann in der Länge von 0 bis 3,2762 Bytes sein. Eigenschaften werden verwendet, um beschreibende Informationen über Objekte und Klassen, wie z. B. Namen, Bemerkungen usw., zu speichern.
  • Objekte können Bezüge zu anderen Objekten aufweisen. Diese Bezüge werden Verbindungen genannt. Verbindungen sind gerichtet: ein Objekt wird Eltern, das andere Kind genannt. Jede Verbindung weist einen Bezugsnamen auf, der eine Zahl ist, die durch das Elternobjekt zugeordnet wird, um jedes der Kinder desselben zu identifizieren. Alle Kinder eines Objekts, die Kindeskinder usw. werden zusammen die Nachkommen des Objekts genannt. Ähnlich werden die Eltern eines Objekts, die Eltern der Eltern desselben usw. zusammen die Ahnen des Objekts genannt. Bei dem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung kann ein Objekt, das durch einen Benutzer manipuliert werden kann, Null oder mehr Kinder, Eltern oder mehrere Eltern aufweisen. Es ist nicht möglich, daß ein Objekt sein eigener Nachkomme wird.
  • In Fig. 3 ist ein Objekt 301, ein Objekt 302, ein Objekt 303, ein Objekt 304, ein Objekt 305, ein Objekt 306, ein Objekt 307, ein Objekt 308 und ein Objekt 309 gezeigt. Die Objekte 301-309 weisen Verbindungen mit Bezugsnamen auf, die Zahlen sind, die in Klammern durch jede Verbindung gezeigt sind. Das Objekt 301 weist eine Verbindung 310 mit dem Bezugsnamen "1" mit dem Objekt 302 auf. Das Objekt 301 weist eine Verbindung 311 mit dem Bezugsnamen "2" mit dem Objekt 303 auf. Das Objekt 302 weist eine Verbindung 312 mit dem Bezugsnamen "7" mit dem Objekt 304 auf. Das Objekt 302 weist eine Verbindung 313 mit dem Bezugsnamen "8" mit dem Objekt 305 auf. Das Objekt 303 weist eine Verbindung 314 mit dem Bezugsnamen "1" mit dem Objekt 306 auf. Das Objekt 303 weist eine Verbindung 315 mit dem Bezugsnamen "4" mit dem Objekt 307 auf. Das Objekt 304 weist eine Verbindung 316 mit dem Bezugsnamen "1" mit dem Objekt 308 auf. Das Objekt 305 weist eine Verbindung 317 mit dem Bezugsnamen "7" mit dem Objekt 308 auf. Das Objekt 306 weist eine Verbindung 318 mit dem Bezugsnamen "8" mit dem Objekt 309 auf. Das Objekt 307 weist eine Verbindung 319 mit dem Bezugsnamen "9" mit dem Objekt 306 auf. Das Objekt 307 weist eine Verbindung 320 mit dem Bezugsnamen "13" mit dem Objekt 309 auf. Das Objekt 308 weist eine Verbindung 321 mit dem Bezugsnamen "1" mit dem Objekt 309 auf. Das Objekt 308 weist eine Verbindung 322 mit dem Bezugsnamen "3" mit dem Objekt 303 auf.
  • Das Objekt 301 sind die Eltern von 302 und 303. Das Objekt 303 ist ein Kind von Objekt 301 und von Objekt 308. Jedes der Objekte 302-309 sind Nachkommen des Objekts 301. Die Nachkommen des Objekts 303 sind die Objekte 306, 307 und 309. Das Objekt 309 weist als Ahnen alle Objekte 301, 302, 304, 305 und 308 auf, usw.
  • Aktive Objekte können dynamisch Verbindungen zu anderen Objekten herstellen und löschen. Wenn eine Verbindung zu einem Objekt gelöscht wird, prüft die OMF 100, ob das Objekt irgendwelche anderen Eltern aufweist. Wenn dies nicht der Fall ist, zerstört die OMF 100 das Objekt durch Löschen der Datendateien des Objekts und Neubeanspruchen eines anderen Speicherraums, der dem Objekt zugeordnet ist.
  • Die Objektverbindungen können für verschiedene Zwecke verwendet werden. Beispielsweise können Ordner die Form von Objekten aufweisen. Die Kinder von Objekten, die als Ordner verwendet werden, können Objekte sein, die Daten zur Verwendung mit verschiedenen Anwendungen enthalten können, oder die Objekte können andere Ordner sein. Fig. 4 zeigt ein Beispiel der Verwendung von Objekten als Ordner. Ein Objekt 401 (auch Ordner 401 genannt), ein Objekt 402 (auch Ordner 402 genannt), ein Objekt 403 (auch Ordner 403 genannt) und ein Objekt 404 (auch Ordner 404 genannt) werden als Ordner verwendet. Der Ordner 401 ein enthält ein Objekt 405, das verwendet wird, um Daten zu enthalten, ein Objekt 406, das verwendet wird, um Daten zu enthalten, ein Objekt 407, das verwendet wird, um Daten zu enthalten, und einen Ordner 402. Der Ordner 402 enthält ein Objekt 408, das verwendet wird, um Daten zu enthalten, den Ordner 403 und den Ordner 404. Der Ordner 403 enthält ein Objekt 409, das verwendet wird, um Daten zu enthalten, und ein Objekt 410, das verwendet wird, um Daten zu enthalten. Der Ordner 404 enthält ein Objekt 411, das verwendet wird, um Daten zu enthalten, ein Objekt 412, das verwendet wird, um Daten zu enthalten, und ein Objekt 413, das verwendet wird, um Daten zu enthalten.
  • Eine entwickeltere Verwendung von Verbindungen besteht darin, Verbindungsobjekte aufzubauen. Beispielsweise enthält in Fig. 5 ein Dokument 510 Textzeilen 511, Textzeilen 512, eine Graphikfigur 513, eine Graphikfigur 514 und Arbeitsblattdaten 515. Wie in Fig. 6 gezeigt, sind die Text- und die Formatierungs-Daten in einem Objekt 611 gespeichert, die Graphikdaten für die Graphikfigur 513 sind bei einem Objekt 612 gespeichert, die Graphikdaten für die Graphikfigur 514 sind bei einem Objekt 613 gespeichert, und die Arbeitsblattdaten 515 sind bei einem Objekt 614 gespeichert. Verbindungen, die verwendet werden, um Verbindungsobjekte aufzubauen, weisen immer eine Art von Datenübertragung auf, die der Verbindung zugeordnet ist, und dieselben werden daher Datenverbindungen genannt. In Fig. 6 ist eine Datenverbindung 615, eine Datenverbindung 616 und eine Datenverbindung 617 gezeigt. In dem Dokument 510 werden lediglich die Daten von dem Objekt 612, dem Objekt 613 und dem Objekt 614 angezeigt, daher sind die Datenverbindung 614, die Datenverbindung 615 und die Datenverbindung 616 Bilddatenverbindungen. Bei einer Bilddatenverbindung werden die Eltern Abfragen zu dem Kind derselben senden, um Daten innerhalb des Fensters der Eltern anzuzeigen.
  • In Fig. 7 ist ein Objekt 701, das Daten für ein erstes Arbeitsblatt enthält, durch eine Datenverbindung 704 mit einem Objekt 702 verbunden, das Daten für ein zweites Arbeitsblatt enthält, und dasselbe ist durch eine Datenverbindung 705 mit einem Objekt 703 verbunden, das Daten für ein drittes Arbeitsblatt enthält. Das erste Arbeitsblatt verwendet Daten von dem zweiten Arbeitsblatt und von dem dritten Arbeitsblatt. Da das erste Arbeitsblatt mehr als lediglich die Daten von dem zweiten und dem dritten Arbeitsblatt anzeigt, werden die Datenverbindung 704 und die Datenverbindung 705 Datendurchgangsdatenverbindungen genannt.
  • Die OMF 100 macht die "Buchführung", wenn die Objekte kopiert oder gesendet werden. Wenn ein Objekt kopiert wird, macht die OMF 100 Kopien von den Datendateien, die dem Objekt zugeordnet sind. Wenn das Objekt, das kopiert wird, Kinder aufweist, macht die OMF 100 ferner Kopien der Nachkommen des Objekts, und dieselbe baut Verbindungen zwischen den neuen Objekten auf, um dem neuen Verbindungsobjekt die gleiche Struktur wie dem Original zu geben.
  • Beispielsweise zeigt Fig. 8 das Objekt 308 von Fig. 3 und die Nachkommen des Objekts 308. Wenn die OMF eine Kopie von Objekt 308 macht, kopiert die OMF jeden Nachkommen des Objekts 308 und die Verbindungen, die in Fig. 8 gezeigt sind. Fig. 9 zeigt eine Kopie des Objekts 308. Ein Objekt 308a ist eine Kopie von Objekt 308. Ein Objekt 303a ist eine Kopie von Objekt 303. Ein Objekt 306a ist eine Kopie von Objekt 306. Ein Objekt 307a ist eine Kopie von Objekt 307. Ein Objekt 309a ist eine Kopie von Objekt 309. Eine Verbindung 321a ist eine Kopie von Verbindung 321. Eine Verbindung 322a ist eine Kopie von Verbindung 322. Eine Verbindung 314a ist eine Kopie von Verbindung 314. Eine Verbindung 315a ist eine Kopie von Verbindung 315. Eine Verbindung 318a ist eine Kopie von Verbindung 318. Eine Verbindung 319a ist eine Kopie von Verbindung 319. Eine Verbindung 320a ist eine Kopie von Verbindung 320.
  • Bei dem bevorzugten Ausführungsbeispiel führt das standardmäßige Verhalten zu einer Kopie der Kinder von Eltern, wenn die Eltern kopiert werden. Wenn jedoch ein Kind als "öffentlich" bezeichnet ist, wird dasselbe nicht kopiert. Vielmehr umfaßt eine Kopie der Eltern eine Verbindung zu dem Kind. Beispielsweise soll in Fig. 10 ein Elternobjekt 161 kopiert werden. Das Elternobjekt 161 ist mit einem Kindobjekt 162 durch eine Verbindung 163 verbunden. Das Kindobjekt 162 ist ein öffentliches Objekt. Wie in Fig. 11 gezeigt, führt das Kopieren des Elternobjekts 161 zu einem neuen Objekt 161a, das mit dem Objekt 162 durch eine neue Verbindung 163a verbunden ist. Das Objekt 161a ist eine Kopie des Objekts 161. Die Verbindung 163a ist eine Kopie der Verbindung 163.
  • In Fig. 12 bis Fig. 71 ist gezeigt, wie Objekte einem Anwender auf dem Bildschirm 14 angezeigt werden. In Fig. 12 ist ein "NewWave-Büro"-Schreibtisch als Ikonen umfassend gezeigt, die als "Dateischublade", "Papierkorb", "Diagnose", "Drucker", "Stern" und "Mein Ordner" bezeichnet sind. Ein Benutzer (nicht gezeigt) hat einen Cursor (= Schreibmarke) 781 unter Verwendung einer Tastatur 19 oder einer Maus 20 derart manipuliert, um "Mein Ordner" auszuwählen.
  • Fig. 13 zeigt, wie die auf dem Monitor 14 angezeigten Objekte verbunden sind. NewWave-Büro (als ein Objekt 700 gezeigt) sind die Eltern von "Dateischublade" (als ein Objekt 701 gezeigt) durch eine Verbindung 711, von "Papierkorb" (als ein Objekt 702 gezeigt) durch eine Verbindung 712, von "Diagnose" (als ein Objekt 703 gezeigt) durch eine Verbindung 713, von "Drucker" (als ein Objekt 704 gezeigt) durch eine Verbindung 714, von "Mein Ordner" (als ein Objekt 705 gezeigt) durch eine Verbindung 715 und von "Stern" (als ein Objekt 706 gezeigt) durch eine Verbindung 716.
  • In Fig. 14 hat der Benutzer unter Verwendung eines Cursors 781 "Erzeugen neu..." in einem Pull-Down-Menü 782 (= Herunterziehmenü) ausgewählt. Als ein Resultat dieser Auswahl erscheint ein Dialogkasten 779 wie in Fig. 15 gezeigt. Unter Verwendung des Cursors 781 hat der Benutzer das Ikon "Entwurf" hervorgehoben, und hat unter Verwendung der Tastatur 19 den Namen "Aufkleben" als einen Namen für ein neues Objekt, das erzeugt werden soll, eingetippt. Der Cursor 781 zeigt nun auf eine Region, die mit "OK" bezeichnet ist. Sobald diese Region ausgewählt ist, wird ein neues Objekt mit dem Titel "Aufkleben" erzeugt, wie es in Fig. 16 gezeigt ist.
  • In Fig. 17 ist "Aufkleben" als ein Objekt 707 gezeigt, das als ein Kind von NewWave-Büro durch eine Verbindung 717 verbunden ist.
  • Die grundlegenden Ablageflächenoperationen sind Ausschneiden, Kopieren und Kleben. Der Benutzer muß die Daten auswählen, die bewegt oder kopiert werden sollen, und dann muß derselbe entweder die Anweisung Ausschneiden oder die Anweisung Kopieren geben. Das Ausschneiden bewegt die ausgewählten Daten zu der Ablagefläche (was dieselben in der ursprünglichen Position löscht). Kopieren erstellt eine Kopie der ausgewählten Daten auf der Ablagefläche. Der Benutzer muß dann die Position auswählen, zu der Daten hinbewegt oder hinkopiert werden sollen und die Klebeanweisung geben. Diese Anweisung kopiert die Inhalte der Ablagefläche zu der ausgewählten Position.
  • In Fig. 18 ist gezeigt, daß ein Benutzer "Aufkleben" ausgewählt hat. Die Auswahl wird dadurch dargestellt, daß das Ikon für "Aufkleben" unter Verwendung einer invertierten Darstellung angezeigt wird. Mit dem Cursor 781 wählt der Benutzer "Kopieren" von einem Pull-Down-Menü 783 aus. In Fig. 18A ist ein Ablageflächenobjekt 720 als Eltern eines Objekts 708 durch eine Verbindung 721 gezeigt. Das Objekt 708 ist eine Kopie des Objekts 707 ("Aufkleben").
  • Wie in Fig. 19 gezeigt, wählt als nächstes der Benutzer "Kleben" aus dem Pull-Down-Menü 783 aus. Das Resultat, das in Fig. 20 gezeigt ist, ist die Hinzufügung eines Objekts 708, auf das durch den Cursor 781 gezeigt wird, das eine Kopie des ursprünglichen Objekts "Aufkleben" 707 ist.
  • In Fig. 21 ist das neue Objekt als ein Objekt 708 gezeigt, das als ein Kind von NewWave-Büro durch eine Verbindung 718 gezeigt ist.
  • In Fig. 22 wurde "Mein Ordner" durch Doppelklicken des Ikons für "Mein Ordner" unter Verwendung des Cursors 781 geöffnet. Das Resultat ist ein neues Fenster 785, das "Mein Ordner" darstellt.
  • In Fig. 23 ist unter Verwendung des Cursors 781 "Aufkleben" (Objekt 708) als zu einem Fenster 785 gezogen gezeigt. In Fig. 24 ist der Prozeß abgeschlossen, und "Aufkleben" (Objekt 708) befindet sich nun in dem Fenster "Mein Ordner". In Fig. 25 ist "Aufkleben", das als Objekt 708 gezeigt ist, nun durch die Verbindung 728 ein Kind von "Mein Ordner".
  • Der Benutzer richtet mehrere Verbindungen unter Verwendung der Anweisung Teilen ein. Diese Anweisung ist eine Erweiterung der Ablageflächenmetapher, die heutzutage in Softwarepaketen zum Bewegen und Kopieren von Daten in dem System üblich ist. Die Ablagefläche ist ein spezieller Puffer, den das System verwendet, um Daten zu halten, die sich im Durchgang befinden.
  • Auf eine Weise arbeitet die Anweisung Teilen ähnlich zu der Anweisung Ausschneiden oder Anweisung Kopieren, die oben beschrieben sind. Das heißt der Benutzer wählt unter Verwendung von Teilen, Ausschneiden oder Kopieren zunächst einige Daten aus, und dann gibt derselbe die Anweisung Teilen, die dazu führt, daß etwas auf die Ablagefläche gesetzt wird. Bei diesem Fall der Anweisung Teilen ist jedoch das, was auf die Ablagefläche gesetzt wird, weder die eigentlichen Daten noch eine Kopie der eigentlichen Daten. Stattdessen ist dasselbe eine Verbindung zu den ausgewählten Daten. Wenn diese Verbindung geklebt wird, wird eine ständige Verbindung zwischen den ursprünglichen Daten und der Position des Klebens hergestellt. Durch die Verwendung der OMF 100 wird diese Verbindung durch die betroffenen Anwendungen verwendet, um einen leichten Zugriff zu den ursprünglichen Daten (in ihrer vollen Anwendung) und ein automatisches Aktualisieren vorzusehen, wenn die ursprünglichen Daten modifiziert werden.
  • In Fig. 26 wurde das NewWave-Büro-Fenster aktiviert. Es wurde "Aufkleben" (Objekt 707) ausgewählt, wie es durch die invertierte Darstellung von "Aufkleben" (Objekt 707) sichtbar ist. Unter Verwendung des Cursors 781 wird "Teilen" aus dem Menü 783 ausgewählt. In Fig. 26A ist das Ablageflächenobjekt 720 als Eltern des Objekts "Aufkleben" 707 durch eine Verbindung 722 gezeigt.
  • In Fig. 27 wurde das Fenster 785 aktiviert. Aus einem Menü 787 wird "Kleben" ausgewählt. Das Resultat, das in Fig. 28 gezeigt ist, ist ein Ikon 707a, das in dem Fenster 785 erscheint, das anzeigt, daß "Aufkleben" (Objekt 707) durch das Fenster 785 und das Fenster NewWave-Büro geteilt wird. In Fig. 28A ist als Resultat des Klebens "Aufkleben" nun sowohl als Kind der Ablagefläche 720 durch die Verbindung 722 als auch als Kind von "Mein Ordner" 705 durch eine Verbindung 727 gezeigt. In Fig. 29, die nur die Verbindung der Objekte zeigt, die für den Benutzer sichtbar sind, ist "Aufkleben" (Objekt 707) als ein Kind von "Mein Ordner" 705 durch die Verbindung 727 gezeigt. Da "Aufkleben" (Objekt 707) geteilt und nicht kopiert ist, verbleibt "Aufkleben" (Objekt 707) ein Kind von NewWave-Büro durch die Verbindung 717.
  • Ein Schlüsselmerkmal der Datenverbindungen ist die automatisierte Datenübertragung. Wenn ein Kindobjekt geöffnet ist, und der Benutzer einen Teil desselben, der "verteilt" ist, ändert, dann führt dasselbe einen Aufruf an die OMF 100 durch. Die OMF 100 prüft, ob irgendeinem der Eltern des Objekts diese spezielle Änderung "kümmert". Wenn es dieselben kümmert, und wenn dieselben auch geöffnet sind, sendet die OMF 100 eine Nachricht an die Eltern, die dieselben informiert, daß neue Daten verfügbar sind. Die Eltern können dann Nachrichten zu dem Kind senden, um die Daten zu erzeugen oder anzuzeigen. Dieses Merkmal ermöglicht es dem Benutzer, Verbindungsobjekte mit komplexen Datenabhängigkeiten einzurichten, so daß dann Änderungen, die an einem Unterteil vorgenommen wurden, automatisch in anderen Teilen widergespiegelt werden. Beispielsweise kann eine Änderung einer Zahl in einem Arbeitsblatt dazu führen, daß ein Graph neu gezeichnet wird und als eine Figur in einem Dokument aktualisiert wird. Da ein Objekt viele Eltern aufweisen kann, kann ein einzelnes Objekt als "Normtext" für jede beliebige Anzahl von anderen Objekten verwendet werden. Eine Änderung in dem Normtext wird sich in allen Objekten widerspiegeln, die Verbindungen zu demselben aufweisen. Die automatische Datenübertragung ist in der folgenden Erörterung dargestellt.
  • In Fig. 30 wurde das Fenster 785 für "Mein Ordner" geschlossen. In Fig. 31 wird der Cursor 781 verwendet, um "Erzeugen neu..." aus dem Pull-Down-Menü 782 auszuwählen. Als ein Resultat dieser Auswahl erscheint der Dialogkasten 779 wie in Fig. 32 gezeigt. Unter Verwendung des Cursors 781 wurde das Ikon HPText hervorgehoben und unter Verwendung der Tastatur 19 wurde der Name "Probetext" als der Name für ein neu zu erzeugendes Objekt eingetippt. Der Cursor 781 zeigt nun auf eine Region, die mit "OK" bezeichnet ist. Sobald diese Re gion ausgewählt ist, wird ein neues Objekt mit dem Titel "Probetext" erzeugt, wie es in Fig. 33 gezeigt ist.
  • In Fig. 34 ist "Probetext" (Objekt 709) als ein Kind von NewWave-Büro durch eine Verbindung 719 gezeigt. In Fig. 34 sind, da "Mein Ordner" geschlossen wurde, "Aufkleben" (Objekt 708), die Verbindung 728 und die Verbindung 727 nicht gezeigt. Diese existieren jedoch noch, dieselben sind jedoch derzeit für einen Benutzer nicht sichtbar.
  • In Fig. 35 führt das Plazieren des Cursors 781 auf dem Ikon "Probetext" und das Doppelklicken einer Taste an der Maus 20 dazu, daß "Probetext" geöffnet wird. In Fig. 36 ist ein geöffnetes Fenster 789 für "Probetext" gezeigt.
  • In Fig. 37 wurde ein Fenster 791 für "Aufkleben" (Objekt 707) durch Doppelklicken auf das Ikon für "Aufkleben" geöffnet. In Fig. 38 wurde ein Abschnitt 790 des Textes von "Probetext" unter Verwendung des Cursors 781, der durch die Maus 20 gesteuert wird, ausgewählt. Der Abschnitt in der invertierten Darstellung, der "NewWave-Büro-Umgebung" genannt wird, ist Abschnitt 790.
  • In Fig. 39 wird der Cursor 781 verwendet, um die Auswahl "Teilen" in einem Pull-Down-Menü 792 auszuwählen. In Fig. 40 wird ein Bereich 793 in dem Fenster 791 unter Verwendung des Cursors 781 ausgewählt. In Fig. 41 wird eine Auswahl "Kleben" aus einem Pull-Down-Menü 794 unter Verwendung des Cursors 781 ausgewählt. In Fig. 42 ist "Probetext" mit "Aufkleben" (Objekt 707) verbunden, und angezeigter Text 790 wird in dem "Aufkleben"-Fenster 791 angezeigt. In Fig. 43 ist "Probetext" (Objekt 709) als ein Kind von "Aufkleben" (Objekt 707) durch eine Verbindung 729 gezeigt. In Fig. 42 ist der angezeigte Text 790 grau gezeigt, da das "Stern"- Fenster 789 geöffnet ist. In Fig. 44 ist das "Stern"-Fenster 789 geschlossen, so daß der angezeigte Text 790 klar angezeigt wird.
  • In Fig. 45 wird eine Region 795 des Fensters 791 unter Verwendung des Cursors 781 ausgewählt. Fig. 46 zeigt den Cursor 781, der das Ikon "Stern" in die Region 795 des Fensters 791 zieht.
  • In Fig. 47 werden nun Daten aus "Stern" (Objekt 706) in der Region 795 des Fensters 791 angezeigt. Wie es in Fig. 48 sichtbar ist, ist nun "Stern" (Objekt 706) durch eine Verbindung 726 ein Kind von "Aufkleben" (Objekt 707).
  • In Fig. 49 hat ein Benutzer den Cursor 781 über die Region 795 des Fensters 791 plaziert und eine Taste an der Maus 20 doppelgeklickt. Das Resultat ist das Öffnen und Anzeigen von "Stern" (Objekt 706) in einem Fenster 796. Fig. 50 zeigt die Verwendung des Cursors 781 um die Auswahl "Ellipse" in einem Menüfenster 797 auszuwählen, was dazu führt, daß die Daten innerhalb "Stern" (Objekt 706) von einem Stern zu einer Ellipse geändert werden. Wie in Fig. 51 gezeigt, ist das Resultat sowohl eine Änderung in den angezeigten Daten in dem Fenster 796 als auch der angezeigten Daten in der Region 795 von Fenster 791.
  • In Fig. 52 wird der Cursor 781 verwendet, um eine Region 797 in Fenster 791 zu definieren. In Fig. 53 wird ein Cursor 781 verwendet, um eine Auswahl "Erzeugen neu..." in einem Pull-Down-Menü 798 auszuwählen. Als ein Resultat dieser Auswahl erscheint ein Dialogkasten 799 in Fig. 54. Der Dialogkasten 799 enthält Ikonen für die zwei verfügbaren Objektklassen, die in der Lage sind, Daten in der Region 797 das Fensters 791 anzuzeigen. Unter Verwendung des Cursors 781 wurde das Ikon "HP Form" (HP Shape) hervorgehoben. Unter Verwendung der Tastatur 19 wurde der neue Name "Neue Form" als der Name für ein neu zu erzeugendes Objekt eingetippt. Der Cursor 781 zeigt nun auf eine Region, die mit "OK" bezeichnet ist. Sobald diese Region ausgewählt ist, wird ein neues Objekt mit dem Titel "Neue Form" erzeugt. Daten für "Neue Form" werden in der Region 797 von Fenster 791 angezeigt, wie es in Fig. 55 gezeigt ist. In Fig. 56 ist "Neue Form" (Objekt 750) als ein Kind von "Aufkleben" (Objekt 707) durch eine Verbindung 760 gezeigt.
  • In Fig. 57 wurde ein Fenster 800 für "Neue Form" durch Plazieren des Cursors 781 über der Region 797 des Fensters 791 und Doppelklicken auf eine Taste an der Maus 20 geöffnet. In Fig. 58 wird der Cursor 781 verwendet, um die Auswahl "Dreieck" aus einem Pull-Down-Menü 801 auszuwählen. Das Resultat, wie es in Fig. 59 gezeigt ist, besteht darin, daß nun ein Dreieck sowohl in dem Fenster 800 als auch in der Region 797 des Fensters 791 angezeigt wird.
  • In Fig. 60 wurde das Fenster 800 geschlossen. In Fig. 61 wird "Neue Form" durch Plazieren des Cursors 781 über der Region 797 des Fensters 796 und Klicken einer Taste an der Maus 20 ausgewählt. In Fig. 62 wird der Cursor 781 verwendet, um die Auswahl "Teilen" aus dem Pull-Down-Menü 794 auszuwählen. In Fig. 63 wird der Cursor 781 verwendet, um eine Region 802 des Fensters 791 auszuwählen. In Fig. 64 wird der Cursor 781 verwendet, um die Auswahl "Kleben" aus dem Pull- Down-Menü 794 auszuwählen. Das Resultat, wie es in Fig. 65 gezeigt ist, ist das Teilen von "Neue Form" mit Daten von "Neue Form", die in der Region 797 und in der Region 802 von Fenster 791 angezeigt werden. In Fig. 66 ist "Neue Form" (Objekt 750) mit einer zusätzlichen Verbindung 770 von den Eltern desselben "Aufkleben" (Objekt 707) gezeigt.
  • In Fig. 67 wurde eine Region 797 unter Verwendung des Cursors 781 ausgewählt. Der Cursor 781 wird dann verwendet, um die Auswahl "Ausschneiden" aus dem Pull-Down-Menü 794 auszuwählen. Das Resultat, wie es in Fig. 68 gezeigt ist, besteht darin, daß die Region 781 aus dem Fenster 791 entfernt wurde. In Fig. 69 wird der Cursor 781 verwendet, um die Auswahl "Kleben" aus dem Pull-Down-Menü 783 auszuwählen. Das Resultat, das in Fig. 70 gezeigt ist, ist ein Ikon für "Neue Form", auf das durch den Cursor 781 gezeigt wird. In Fig. 71 ist "Neue Form" (Objekt 750) nun als ein Kind von NewWave- Büro (Objekt 100) durch eine Verbindung 780 gezeigt.
  • In Fig. 72 ist die OMF 100 als sieben Systemdateien enthaltend gezeigt: eine Systemdatei 601, eine Systemdatei 602, eine Systemdatei 603, eine Systemdatei 604, eine Systemdatei 605, eine Systemdatei 606 und eine Systemdatei 607. Die OMF-Schnittstelle 599 dient als eine Schnittstelle von der OMF mit anderen Programmen, die auf dem Computer 18 laufen gelassen werden. Die Systemdateien 601-607 dienen als Datenbank, die verschiedene Informationen liefert. Dieselben liefern Informationen über Objekteigenschaften, wie z. B. welcher Klasse jedes Objekt zugehört, und was der Name jedes Objekts ist. Die Systemdateien 601-607 liefern Informationen über Objektklassen, z. B. welche Anwendung jeder Objektklasse zugeordnet ist, welches Ikon Objekte einer speziellen Klasse darstellt, und Listen davon, welche Nachrichten (z. B. dieselben, die in Fig. 2 gezeigt sind) durch Objekte einer speziellen Klasse verarbeitet werden können. Die Systemdateien 601-607 enthalten ferner Informationen über Verbindungen zwischen den Eltern- und den Kind-Objekten, umfassend einer Liste von Eltern und Bezugsnamen jeder Verbindung von Eltern für jedes Objekt; eine Liste von Kindern und Bezugsnamen für jede Verbindung zu einem Kind für jedes Objekt; und zusätzlich Informationen, um den Datenaustausch quer zu Datenverbindungen zu verwalten. Zusätzlich enthalten die Systemdateien 601-607 allgemeine Informationen, z. B. welche Dateien in dem Betriebssystem für jede Klasse, die installiert ist, installiert sind, und welche Objekte ein automatisches Neustarten abgefragt haben, wenn die OMF 100 neu gestartet wird.
  • Bei dem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung wird auf die Systemdatei 601 als HPOMF.CAT Bezug genommen, auf die Systemdatei 602 wird als HPOMF.CLS Bezug genommen, auf die Systemdatei 603 wird als HPOMF.XRF Bezug genommen, auf die Systemdatei 604 wird als HPOMF.PRP Bezug genommen, auf die Systemdatei 605 wird als HPOMF.INS Bezug genommen, auf die Systemdatei 606 wird als HPOMF.SDF Bezug genommen, und auf die Systemdatei 607 wird als HPOMFICO.NWE Bezug genommen. Eine Beschreibung jeder Systemdatei wird nun gegeben.
  • Auf die Systemdatei 601 HPOMF.CAT wird ferner als SYSCAT Bezug genommen. HPOMF.CAT ist ein Katalog aller existierender Objekte in dem System. In Fig. 73 ist HPOMF.CAT als datensatzausgerichtet gezeigt. HPOMF.CAT weist eine Mehrzahl von Dateidatensätzen auf. In Fig. 73 sind der Dateidatensatz 0 bis zu dem Dateidatensatz 8 gezeigt, obwohl HPOMF.CAT wesentlich mehr Dateidatensätze als in Fig. 73 gezeigt enthalten kann. Der Dateidatensatz 0 ist ein Anfangsblock, der verschiedene Signaturen enthält und verwendet wird, um eine Liste von freien Dateidatensätzen zu verwalten. Eine Signatur ist ein gewisser bekannter Wert, der, wenn derselbe vorhanden ist, anzeigt, daß die Datei nicht verstümmelt ist. Der Dateidatensatz 1 bis zu dem Dateidatensatz 8 und zusätzliche Dateidatensätze (nicht gezeigt) definieren entweder ein existierendes Objekt oder ein freies Objekt. Bei dem bevorzugten Ausführungsbeispiel kann HPOMF.CAT dynamisch wachsen, sowie mehr Dateidatensätze benötigt werden, dieselbe kann jedoch nicht schrumpfen.
  • Der Dateidatensatz 1 definiert ein spezielles Objekt, das die globalen Eltern genannt wird. Die globalen Eltern weisen eine andere Form auf als jedes andere Objekt, und dieselben können als ein "Pseudo"-Objekt betrachtet werden. Fig. 74 zeigt die globalen Eltern als die Eltern des globalen Objekts 250 durch die Verbindung 260, des globalen Objekts 251 durch die Verbindung 261, des globalen Objekts 252 durch die Verbindung 262, des globalen Objekts 253 durch die Verbindung 263, des globalen Objekts 254 durch die Verbindung 264 und des globalen Objekts 255 durch die Verbindung 265, wie gezeigt. Die globalen Objekte 250 - 255 befinden sich ebenfalls innerhalb von HPOMF.CAT. Jedes globale Objekt 250 - 255 können Eltern von einem oder mehreren Objekten in HPOMF. CAT sein. Jedes Objekt in HPOMF.CAT, das kein globales Objekt ist, ist ein Nachkomme des globalen Objekts. Obwohl Fig. 74 lediglich sechs globale Objekte zeigt, ist die An zahl der globalen Objekte, die auf einem System arbeiten, eine Frage der Systemkonfiguration. Jedes beliebige Objekt in dem System kann sich auf ein globales Objekt unter Verwendung des Bezugsnamens der Verbindung zu diesem globalen Objekt von den globalen Eltern beziehen.
  • Wie es aus Fig. 73 sichtbar ist, sind die Dateidatensätze in HPOMF.CAT fortlaufend numeriert. Diese Zahlen dienen als Etiketten, die jedes Objekt identifizieren.
  • Bei dem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung weist jeder Datensatz eine Länge von 128 Bytes auf. Die Felder für den Dateidatensatz 0 sind in Tabelle 1 im folgenden aufgelistet:
  • Tabelle 1
  • 1FirstFreeEntry Enthält die Datensatznummer des ersten freien Datensatzes in HPOMF.CAT, oder "0", wenn es keine freien Datensätze gibt.
  • FileID Enthält die mit Null abgeschlossene Zeichenfolge "HPOMF.CAT". Diese dient als eine Signatur.
  • Version Enthält die Dateiformatversionsnummer, die ferner als eine Signatur dient.
  • 1MaxRecordNumber Enthält die Nummer des höchsten Datensatzes, der je von innerhalb HPOMF.CAT (dieser höchste Datensatz kann frei oder nicht-frei sein) zugeordnet wurde.
  • Tabelle 2 enthält im folgenden die Felder für die Dateidatensätze in HPOMF.CAT für andere Dateidatensätze als Dateidatensatz 0:
  • Tabelle 2
  • 1FirstFreeEntry Ist "-1", wenn dieser Datensatz ein Objekt definiert, sonst ist dieser Datensatz frei und dieses Feld ist die Datensatznummer des nächsten freien Datensatzes, oder ist "0", wenn es keine freien Datensätze mehr gibt. Wenn der Datensatz frei ist, hat keines der anderen Felder in dem Datensatz eine Bedeutung.
  • TypelnClass Spezifiziert die Klasse dieses Objekts. Dies ist die Nummer des Datensatzes in HPOMF.CLS, die anzeigt, zu welcher Klasse das Objekt gehört (siehe die vorhergehende Erörterung der Klasse).
  • SysCatFlags Spezifiziert, ob das Objekt global ist, wenn das Bit, das durch die Nummer 20 (hexadezimal) maskiert ist, in diesem Byte gesetzt ist. Bei dem bevorzugten Ausführungsbeispiel müssen alle anderen Bitpositionen "0" enthalten, und dieselben werden nicht verwendet.
  • properties Spezifiziert die Anzahl der Eigenschaften, die Länge der Eigenschaftsnamen und die Position der Eigenschaften des Ojekts in HPOMF.PRP. Siehe die Beschreibung von HPOMF.PRP im folgenden für eine weitere Definition der Struktur dieses Feldes.
  • fastprops Auf gewisse Objekteigenschaften, wie z. B. dem Namen, wird derart stark zugegriffen, daß dieselben direkt in diesem Feld und nicht indirekt in der Eigenschaftendatei gespeichert werden. Eigenschaften, die in diesem Feld gespeichert sind, werden "schnelle Eigenschaften" genannt.
  • Auf die Systemdatei 602 HPOMF.CLS wird ferner als SYSCLASS Bezug genommen. Diese Systemdatei ist eine Liste von allen installierten Klassen in dem System. Dieselbe ist datensatzausgerichtet. Der erste Datensatz mit der Nummer 0 ist ein Anfangsblock, der verschiedene Signaturen (siehe oben) enthält, und der verwendet wird, um eine Liste von freien Datensätzen zu verwalten. Alle anderen Datensätze definieren entweder eine installierte Klasse oder eine freie Klasse. Bei dem bevorzugten Ausführungsbeispiel kann HPOMF.CLS dynamisch wachsen jedoch nicht schrumpfen.
  • Jeder Dateidatensatz in HPOMF.CLS ist 32 Byte lang. Der HPOMF.CLS-Dateidatensatz 0 (der Anfangsblock) enthält die folgenden in Tabelle 3 aufgelisteten Felder:
  • Tabelle 3
  • 1FirstFreeEntry Enthält die Datensatznummer des ersten freien Datensatzes in HPOMF.CLS, oder "0", wenn es keine freien Datensätze gibt.
  • FileID Enthält den mit Null abgeschlossenen Zeichensatz "HPOMF.CLS".
  • Version Enthält die Dateiformatversionsnummer.
  • 1MaxRecordNumber Enthält die Nummer des höchsten jemals zugewiesenen Datensatzes aus HPOMF.CLS (dieser höchste Datensatz kann frei oder nicht-frei sein).
  • Tabelle 4 enthält im folgenden die Felder für Dateidatensätze in HPOMF.CLS für andere Dateidatensätze als Dateidatensatz 0:
  • Tabelle 4
  • 1FirstFreeEntry Ist "-1", wenn dieser Datensatz eine installierte Klasse definiert, dieser Datensatz ist sonst frei, und dieses Feld ist die Datensatznummer für den nächsten freien Datensatz, oder ist "0", wenn es keine weiteren freien Datensätze gibt. Wenn der Datensatz frei ist, hat keines der anderen Felder in dem Datensatz eine Bedeutung.
  • ModuleFileName Spezifiziert den Namen der Anwendung, die den Objekten dieser Klasse zugeordnet ist, als ein mit Null abgeschlossener Zeichensatz.
  • properties Spezifiziert die Anzahl der Eigenschaften, die Länge der Eigenschaftsnamen und die Position der Eigenschaften des Objekts in HPOMF.PRP. Siehe die Beschreibung von HPOMF.PRP im folgenden für eine weitere Definition der Struktur dieses Feldes.
  • In Fig. 75 ist die Beziehung von HPOMF.CAT und HPOMF.CLS gezeigt. Innerhalb jedes Objektseintrags innerhalb von HPOMF. CAT dient die Datensatznummer, die ein Etikett eines Objekts ist, als ein Identifizierer 650 von Datendateien in einem Massenspeicher 170, der dem Objekt zugeordnet ist. Das Feld "TypeInClass" dient als ein Identifizierer 651 für den Klasseneintrag in HPOMF.CLS, der die Klasse von jedem Objekt identifiziert. Innerhalb jedes Klasseneintrags in HPOMF.CLS dient das Feld "ModuleFileName" als ein Identifizierer 652 der Anwendungsdatei in dem Massenspeicher 170, der der Klasse zugeordnet ist.
  • In Fig. 76 ist die Einteilung eines Abschnitts eines Massenspeichers 170 gezeigt. Ein Wurzelverzeichnis 660 enthält Zeiger zu einem Verzeichnis HPNWDATA 661 und einem Verzeichnis HPNWPROG 668. Das Verzeichnis HPNWPROG 668 ist die Position der Speicherung für Anwendungsdateien, die durch einen Pfeil 669 dargestellt ist. Das HPNWDATA enthält eine Mehrzahl von Verzeichnissen HPOMFddd, die durch Verzeichnisse 662, 663, 664, 665 und 666 dargestellt werden. In den Verzeichnissen HPOMFddd werden Datendateien gespeichert, die den Objekten zugeordnet sind. Das "ddd" in HPOMFddd steht für eine dreiziffrige, hexadezimale Zahl mit führenden Nullen. Jedes Verzeichnis HPOMFddd weist eine andere hexadezimale Zahl "ddd" auf. Die Zahl "ddd" zeigt an, welches Verzeichnis HPOMFddd Datendateien für ein spezielles Objekt speichert. Die Datendateien für ein spezielles Objekt sind in dem Verzeichnis HPOMFddd gespeichert, das eine Zahl "ddd" gleich dem Etikett für das Objekt geteilt durch eine ganzzahlige Zahl, z. B. 54, aufweist. Innerhalb jedes Verzeichnisses HPOMFddd werden Dateien durch Etikettnummern gespeichert, z. B. weisen Datendateinamen das Format xxxxxxxx.111 auf, wobei "xxxxxxxx" ein achtziffriges hexadezimales Etikett mit führenden Nullen ist, und "111" ein Bezug ist, der durch die Anwendung ausgewählt wird.
  • Auf die Systemdatei 603 HPOMF.XRF wird ferner als SYSXREF Bezug genommen. Diese Datei ist eine Liste von allen Verbindungen, die in dem System existieren. Dieselbe ist datensatzausgerichtet, dieselbe weist jedoch keinen Anfangsblockdatensatz auf. Jede Datensatzdatei ist entweder frei oder definiert eine existierende Verbindung, oder dieselbe wird als ein Überlaufdatensatz von dem vorhergehenden Datensatz verwendet, um zusätzliche Ansichtsspezifikationsinformationen zu spezifizieren. Die Datensätze, die Ansichtsspezifikationen enthalten, werden Ansichtsspezifikationsdateidatensätze genannt. Ansichtsspezifikationsdateidatensätze können lediglich durch einen vorhergehenden Datensatz identifiziert werden, der eine existierende Datenverbindung definiert; Ansichtsspezifikationsdateidatensätze können nicht durch den Inhalt innerhalb eines Ansichtsspezifikationsdateidatensatzes identifiziert werden. HPOMF.XRF wird jedesmal bezüglich der Größe um 16 KBytes vergrößert. Ein neu zugeordneter Abschnitt von HPOMF.XRF wird mit Nullen gefüllt. Die Dateidatensätze innerhalb von HPOMF.XRF, die frei sind oder die eine Verbindung definieren, weisen die folgenden in Tabelle 5 aufgelisteten Felder auf:
  • Tabelle 5
  • ParentTag Enthält das Etikett (HPOMF.CAT-Datensatznummer) des Elternobjekts dieser Verbindung. Wenn dieses Feld 0 ist, dann definiert dieser Datensatz keine Verbindung und ist frei.
  • ChildTag Enthält das Etikett des Kindobjekts dieser Verbindung. Wenn ParentTag in diesem Datensatz 0 ist, und dieses Feld ferner 0 ist, dann definiert kein Datensatz über diesen Datensatz hinaus in HPOMF.XRF eine Verbindung.
  • RefName Enthält den Bezugsnamen, den die E1- tern zu der Verbindung zugewiesen haben. Dieses Feld ist bedeutungslos, wenn ParentTag oder ChildTag Null sind. Sonst ist, wenn die obersten drei Bits dieses Werts 110 sind, der nächste Datensatz in der Datei eine Ansichtsspezifikation.
  • Dateidatensätze innerhalb von HPOMF.XRF, die Ansichtsspezifikationsdateidatensätze sind, weisen die folgenden in Tabelle 5A aufgelisteten Felder auf:
  • Tabelle 5A
  • Datald Enthält den Wert, den das Kind zugewiesen hat, um den Teil desselben zu identifizieren, der durch die Verbindung betrachtet wird.
  • Snapshot Enthält das Etikett (HPOMF.CAT-Datensatznummer) des Objekts, daß der Schnappschuß der Ansicht ist, oder wenn 0, weist die Ansicht keinen Schnappschuß auf. Eine weitere Erörterung von Schnappschüssen folgt.
  • Misc Zusammengesetzt aus mehreren Bitfeldern, die im folgenden beschrieben sind:
  • VS_NEWDATASET Eingestellt, wenn das Kind der OMF mitgeteilt hat, daß neue Daten verfügbar sind, was jedoch nicht den Eltern bekanntgegeben wurde. Die hexadezimale Zahl 8000 0000 ist eine Maske, die anzeigt, welche Bits für dieses Bitfeld ver wendet werden.
  • VS_NEWDATAANNOUNCED Eingestellt, wenn das Kind der OMF mitgeteilt hat, neue Daten den Eltern bekanntzugeben, die Eltern waren jedoch nicht aktiv und wurden nicht benachrichtigt. Die hexadezimale Zahl 4000 0000 ist eine Maske, die anzeigt, welche Bits für dieses Bitfeld verwendet werden.
  • VS_SNAPSHOTOLD Eingestellt, wenn der OMF durch das Kind mitgeteilt wurde, daß der Schnappschuß der Ansicht nicht aktuell ist. Die hexadezimale Zahl 2000 0000 ist eine Maske, die anzeigt, welche Bits für dieses Bitfeld verwendet werden.
  • VS_WANTMESSAGES Eingestellt, wenn das Kind der OMF mitgeteilt hat, daß dasselbe Ansichtsnachrichten verarbeiten will, wenn der Schnappschuß nicht aktuell ist. Die hexadezimale Zahl 1000 0000 ist eine Maske, die anzeigt, welche Bits für dieses Bitfeld verwendet werden.
  • VS_TEXTDISKLOC Dateiposition in HPOMF.PRP, bei der ein 32 Zeichen langer Textdaten-ID positioniert ist. Dieselbe enthält eine Null, wenn kein Textdaten-ID durch das Kind definiert wurde. Die fünf Bits niedriger Ordnung der Dateiposition sind immer Null, und dieselben werden folglich nicht in dem Feld Misc gespeichert. Die hexadezimale Zahl OFFF FFEO ist eine Maske, die anzeigt, welche der Bits für dieses Bitfeld verwendet werden.
  • VS_INITIALIZED Eingestellt, wenn die Ansichtsspezifikation initialisiert wurde. Wenn dasselbe leer ist, sind alle Informationen in der Ansichtsspezifikation Null. Die hexadezimale Zahl 0000 0010 ist eine Maske, die anzeigt, welche der Bits für dieses Bitfeld verwendet werden.
  • VS_RESERVED Reserviert für eine zukünftige Erweiterung. Die hexadezimale Zahl 0000 0008 ist eine Maske, die anzeigt, welche der Bits für dieses Bitfeld verwendet werden.
  • VS_VIEWCLASS Spezifiziert die Ansichtsklasse des Kinds, die der Ansicht zugewiesen ist. Die Ansichtsklasse definiert, welche Ansichtsverfahren den Eltern zur Verfügung stehen. Die hexadezimale Zahl 0000 0007 ist eine Maske, die anzeigt, welche der Bits für dieses Bitfeld verwendet werden.
  • Beispielsweise ist in Fig. 77 das Objekt 671 ein Ordner und derselbe weist ein Etikett von "6" auf. Das Objekt 671 sind Eltern eines Objekts 672 durch eine Verbindung 674 und Eltern eines Objekts 673 durch eine Verbindung 675. Das Objekt 672 weist ein Etikett "12" auf. Die Verbindung 674 weist einen Bezugsnamen "1" auf. Das Objekt 673 weist ein Etikett "19" auf. Die Verbindung 675 weist einen Bezugsnamen "7" auf. Die Bezugsnamen werden durch das Elternobjekt ausgewählt, und dieselben müssen nicht für das spezielle Elternobjekt einzigartig sein; es können jedoch andere Eltern eine Verbindung mit dem gleichen Bezugsnamen aufweisen, solange jeder Bezugsname für jede Eltern einzigartig ist.
  • Fig. 79 zeigt ein Blockdiagramm von HPOMF.XRF 603. HPOMF.XRF enthält einen Eintrag für jede Verbindung zwischen Eltern und Kindern. In HPOMF.XRF 603 enthält die Spalte 731 das Etikett der Eltern für jede Verbindung. Eine Spalte 732 enthält das Etikett für das Kind für jede Verbindung. Eine Spalte 733 enthält den Bezugsnamen für jede Verbindung. Die ersten drei Bitpositionen der Spalte 733, die in Fig. 79 als Teilspalte 734 gezeigt ist, zeigen an, ob ein Ansichtsspezifikationsdateidatensatz vorhanden ("110") ist, ob kein Ansichtsspezifikationsdateidatensatz folgt ("000") oder ob die Verbindung zwischen einer Verbindung von den globalen Eltern zu einem globalen Objekt ("100") ist.
  • Wie sichtbar ist, ist ein Eintrag 735 ein Eintrag, der die in Fig. 77 gezeigte Verbindung 674 beschreibt. Das heißt, in der Spalte 731 des Eintrags 735 befindet sich das Elternetikett "6". In der Spalte 732 gibt es ein Kindetikett "12" und in der Spalte 733 gibt es einen Bezugsnamen "1". Da das Objekt 671 ein Ordner ist, gibt es keine Ansicht, daher würden die drei Bits innerhalb der Teilspalte 734 "000" sein.
  • Ähnlich ist ein Eintrag 736 ein Eintrag, der die Verbindung 675, die in Fig. 77 gezeigt ist, beschreibt. Das heißt, es befindet sich in Spalte 731 des Eintrags 736 ein Elternetikett "6". In Spalte 732 gibt es ein Kindetikett "19" und in Spalte 733 gibt es den Bezugsnamen "7". Da das Objekt 671 ein Ordner ist, gibt es keine Ansicht, daher würden die drei Bits innerhalb der Teilspalte 734 "000" sein.
  • In Fig. 78 ist das Objekt 676 ein Dokument, und dasselbe weist ein Etikett "17" auf. Das Objekt 676 sind Eltern eines Objekts 677 durch eine Verbindung 679 und ·Eltern eines Objekts 678 durch eine Verbindung 680. Das Objekt 677 weist ein Etikett "8" auf. Die Verbindung 679 weist einen Bezugsnamen "1" auf. Das Objekt 678 weist ein Etikett "21" auf. Die Verbindung 680 weist einen Bezugsnamen "3" auf.
  • In Fig. 79 beschreibt ein Eintrag 737 eine Verbindung 679, die in Fig. 78 gezeigt ist. Das heißt in einer Spalte 731 des Eintrags 737 befindet sich ein Elternetikett "17". In der Spalte 732 befindet sich ein Kindetikett "8" und in der Spalte 733 befindet sich ein Bezugsname "1". Das Objekt 676 ist ein Dokument, und nimmt man an, daß eine Ansicht der Verbindung 679 zugeordnet ist, enthalten die drei Bits innerhalb der Teilspalte 734 die drei Bits "110" und der Eintrag 738 ist ein Ansichtsspezifikationsdatensatz.
  • Ähnlich beschreibt ein Eintrag 739 die Verbindung 680, die in Fig. 78 gezeigt ist. Das heißt, es befindet sich in Spalte 731 des Eintrags 739 das Elternetikett "17". In Spalte 732 befindet sich das Kindetikett "21" und in Spalte 733 befindet sich der Bezugsname "3". Nimmt man an, daß eine Ansicht der Verbindung 680 zugeordnet ist, enthalten die drei Bits innerhalb der Teilspalte 734 die drei Bits "110" und der Eintrag 740 ist ein Ansichtsspezifikationsdatensatz.
  • In Fig. 80 ist ein Ansichtsspezifikationsdatensatz 740 ein Feld 741 umfassend gezeigt, das eine Datenidentifikation für die Ansicht enthält, ein Feld 742, das anzeigt, ob es einen Schnappschuß gibt, der in der Ansicht verwendet wird, und ein Feld 743, das verschiedene Informationen über die Ansicht enthält. Die Datenidentifikationsnummer wird durch das Kindobjekt der Verbindung verwendet, um zu bestimmen, welche Daten durch die Verbindung gesendet werden.
  • Fig. 37-43 zeigen die Einrichtung einer Verbindung mit einer Ansicht. Wie es im vorhergehenden erörtert wurde, wurde in Fig. 37 das Fenster 791 für "Aufkleben" (Objekt 707) durch Doppelklicken auf das Ikon für "Aufkleben" geöffnet. In Fig. 38 wurde unter Verwendung des Cursors 781, der durch die Maus 20 gesteuert wird, der Abschnitt 790 des Textes von "Probetext" ausgewählt. Der Abschnitt in invertierter Darstellung der "NewWave-Büro-Umgebung" angibt, ist der Abschnitt 790.
  • In Fig. 39 wird der Cursor 781 verwendet, um die Auswahl "Teilen" in einem Pull-Down-Menü 792 auszuwählen. Sobald "Teilen" ausgewählt ist, erzeugt das Kindobjekt 790 ("Probetext") eine Datenidentifikationsnummer, die den Abschnitt 790 des Textes zu dem Kindobjekt 709 identifiziert. Das Kindobjekt 709 bewirkt ferner, daß die OMF 100 eine Verbindung zu dem Kindobjekt 709 auf der Ablagefläche 720 ablegt -- das Kindobjekt 709 kommuniziert zu der OMF 100 durch eine Anweisung, die in Anhang B dargelegt ist, der hieran angeheftet ist --. Das Kindobjekt 709 informiert ferner die OMF 100, welche Datenidentifikationsnummer der neuen Verbindung zwischen dem Kind 709 und der Ablagefläche 720 zugeordnet ist. Wenn es einen Schnappschuß gibt, der der Verbindung zugeordnet ist, wird das Kind 709 ferner die OMF 100 informieren, ob es einen Schnappschuß gibt, der der Verbindung zugeordnet ist. Schnappschüsse werden ausführlicher im folgenden erörtert. Als ein Resultat wird die OMF 100 einen Eintrag in HPOMF.XRF 603 für eine Verbindung zwischen der Ablagefläche 720 und dem Kindobjekt 709 einrichten. Der Ansichtsspezifikationsdatensatz für die Verbindung wird die Datenidentifikationsnummer umfassen, die der OMF 100 durch das Kind 709 gegeben wurde.
  • In Fig. 40 wird der Bereich 793 in dem Fenster 791 unter Verwendung des Cursors 781 ausgewählt. In Fig. 41 wird eine Auswahl "Kleben" aus einem Pull-Down-Menü 794 unter Verwendung des Cursors 781 ausgewählt. An diesem Punkt fragt das Elternobjekt 707 ("Aufkleben") die OMF 100 nach einer Verbindung ab, die dasselbe zu den Eltern desselben machen, was sich auf der Ablagefläche 720 befindet. Der Ansichtsspezifikationsdatensatz für die Verbindung zwischen der Ablagefläche 720 und dem Kind 709 wird für die Verbindung 729 zwischen den Eltern 707 und dem Kind 709 kopiert. In Fig. 43 ist "Probetext" (Objekt 709) als ein Kind von "Aufkleben" (Objekt 707) durch die Verbindung 729 gezeigt.
  • In Fig. 42 wird der angezeigte Text 790 in dem Fenster "Aufkleben" 791 angezeigt. Indem dies erreicht wird, führt das Elternobjekt 707 einen Aufruf zu der OMF 100 durch, wobei dasselbe anfragt, eine Nachricht zu dem Objekt zu senden, das durch den Bezugsnamen für die Verbindung 729 identifiziert ist. Diese Nachricht fragt das Kindobjekt 709 ab, Daten von dieser Verbindung in eine Position, die durch das Elternobjekt 707 spezifiziert ist, anzuzeigen. Die OMF 100 nimmt die Nachricht von den Eltern 707, fügt die Datenidentifikationsnummer von dem Ansichtsspezifikationsdatensatz für die Verbindung 729 hinzu und liefert die Nachricht zu dem Kind 709. Das Kind 709 zeigt die Daten in der spezifizierten Position, bei diesem Fall der Bereich 793, an. Der Name der Nachricht, die von den Eltern 707 zu der OMF 100 zu dem Kind 709 gesendet wird, ist "DISPLAY_VIEW". Dieselbe ist in Anhang B weiter beschrieben, der hieran angeheftet ist.
  • Eine weitere Nachricht "PRINT_SLAVE", die ferner in Anhang B beschrieben ist, kann verwendet werden, wenn es erwünscht ist, Daten auf einem Drucker und nicht Daten auf einem Terminalbildschirm anzuzeigen.
  • Zusätzlich können die Eltern 707 eine Nachricht "GET_SIZE" zu dem Kindobjekt 709 senden. In der Nachricht "GET_SIZE" identifiziert das Elternobjekt 707 einen Bezugsnamen für die Verbindung 729 und zeigt Koordinaten für eine Anzeige an. Die OMF 100 nimmt die Nachricht GET_SIZE von den Eltern 707, fügt die Datenidentifikationsnummer von dem Ansichtsspezifikationsdatensatz für die Verbindung 729 hinzu und liefert die Nachricht zu dem Kind 709. Das Kind 709 gibt den Eltern 707 die Größe des Abschnitts des spezifizierten Bereichs zurück, den das Kind 709 verwenden würde, um die Daten anzuzeigen. Dies ermöglicht es den Eltern 707, die Region zu modifizieren, die zum Anzeigen von Daten von dem Kind 709 reserviert ist, wenn das Kind 709 nicht in der Lage ist die Daten zu skalieren, um dieselben in die Region zu passen, die durch die Eltern 707 spezifiziert ist.
  • Wenn Daten von einem Kindobjekt durch ein Elternobjekt angezeigt werden, und das Kindobjekt die angezeigten Daten verändert, benachrichtigt das Kindobjekt die OMF 100, daß es eine Veränderung in dem Datenobjekt gegeben hat. Beispielsweise, wie es oben beschrieben ist, werden in Fig. 47 die Daten von "Stern" (Objekt 706) durch eine Verbindung 726 nun in einer Region 795 des Fensters 791 angezeigt. Und, wie es in Fig. 48 sichtbar ist, ist "Stern" (Objekt 706) ein Kind von "Aufkleben" (Objekt 707). Da die Daten von dem Kindobjekt 706 zu dem Elternobjekt 707 weitergeleitet werden, ist die Verbindung 726 eine Datenverbindung, die eine Ansichtsspezifikation umfaßt.
  • In Fig. 49 ist das Verfahren zum Ändern der Daten in dem Kindobjekt 706 gezeigt. Ein Benutzer plaziert den Cursor 781 über einer Region 795 des Fensters 791 und doppelklickt eine Taste an der Maus 20. Das Resultat ist das Öffnen und das Anzeigen von "Stern" (Objekt 706) in einem Fenster 796. Die Verwendung des Cursors 781, um eine Auswahl "Ellipse" in einem Menüfenster 797 auszuwählen, führt dazu, daß die Daten innerhalb von "Stern" (Objekt 706) von einem Stern zu einer Ellipse verändert werden. Wie in Fig. 51 gezeigt, ist das Resultat sowohl eine Änderung der Daten, die in Fenster 796 angezeigt werden, als auch der Daten, die in der Region 795 von Fenster 791 angezeigt werden.
  • Das Kindobjekt 706 erreicht diese Veränderung durch Durchführen eines Aufrufs an die OMF 100, der darlegt, daß die Daten, die der Datenidentifikationsnummer zugeordnet sind, die der Verbindung 726 zugeordnet ist, verändert sind. Die OMF 100 schaut nach allen Verbindungen, die die Datenidentifikationsnummer verwenden. Wenn das Elternobjekt einer beliebigen der Verbindungen nicht aktiv ist, stellt die OMF 100 das Bit VS_NEWDATAANNOUNCED für diese Verbindung in HPOMF.XRF ein. Wenn das Elternobjekt aktiviert ist, kann das Elternobjekt die neuen Daten abfragen.
  • Wenn das Elternobjekt aktiv ist, wird die OMF 100 eine Nachricht zu dem Elternobjekt senden, die besagt, daß neue Daten verfügbar sind. Die OMF 100 wird den Bezugsnamen der Verbindung zu dem Elternobjekt identifizieren, für den es zusätzliche Daten gibt. Das Elternobjekt sendet eine Nachricht zu dem Kindobjekt, ob dasselbe die angezeigten neuen Daten will. Bei dem vorliegenden Fall ist das Elternobjekt 707 aktiv, und dasselbe hat abgefragt, daß die neuen Daten in der Region 795 des Fensters 791 angezeigt werden. Eine weitere Beschreibung der Ansichtsspezifikationen ist in den Anhängen B, C und D zu finden.
  • Der Vorteil der vorliegenden Erfindung besteht darin, daß das Elternobjekt 707 in der Lage ist mit dem Kindobjekt 706 durch die OMF 100 zu kommunizieren, ohne daß das Elternobjekt 707 oder das Kindobjekt 706 die Identität oder jegliche anderen Details übereinander wissen. Das Elternobjekt identifiziert die Verbindung unter Verwendung lediglich des Bezugsnamens der Verbindung. Das Kindobjekt identifiziert die Verbindung lediglich unter Verwendung der Datenidentifikationsnummer der Verbindung. Die OMF 100 führt die gesamte Übersetzung und Identifikation dafür durch, welche Verbindungen und welche Objekte betroffen sind.
  • Auf die Systemdatei 604 HPOMF.PRP wird auch als SYSPROP Bezug genommen. Die HPOMF.PRP enthält alle Objekt- und Klassen-Eigenschaften, außer die schnellen Objekteigenschaften, die in HPOMF.CAT enthalten sind. Jeder Datensatz in der Systemdatei 601 (HPOMF.CAT) und der Systemdatei 602 (HPOMF. CLS) weist ein Eigenschaftsfeld auf, wie es oben beschrieben ist. Jedes Eigenschaftsfeld enthält die Felder, die in der folgenden Tabelle 6 beschrieben sind:
  • Tabelle 6
  • DirDiskLoc Enthält die Position (Byteversatz) innerhalb von HPOMF.PRP des Eigenschaftslistenverzeichnisses.
  • nProps Enthält die Anzahl der Eigenschaften in der Eigenschaftsliste. Dies ist die Anzahl der Einträge in dem Verzeichniseintragsarray, der im folgenden beschrieben ist.
  • PoolSize Enthält die kombinierte Länge von allen Namen der Eigenschaften in der Eigenschaftsliste, umfassend ein mit Null abgeschlossenes Byte für jeden Namen. Dies ist die Größe des Verzeichnisnamenpools, der im folgenden beschrieben ist.
  • Für jedes Objekt und für jede Klasse befindet sich an der Position DirDiskLoc in der Datei HPOMF.PRP das Eigenschaftsverzeichnis für dieses Objekt oder diese Klasse. Das Verzeichnis weist zwei Hauptabschnitte auf: das Eintragsarray, gefolgt von dem Namenpool. Das Eintragsarray weist einen Eintrag für jede Eigenschaft in der Eigenschaftsliste auf. Jeder Eintrag weist Felder auf, die in der folgenden Tabelle 7 dargelegt sind:
  • Tabelle 7
  • ValueLen Spezifiziert die Länge in Bytes der zugeordneten Eigenschaft. Diese kann Null sein.
  • ValueDiskLoc Enthält die Position innerhalb von HPOMF.PRP des Werts der zugeordneten Eigenschaft. Wenn ValueLen Null ist, ist dasselbe ferner Null und es gibt nirgendwo einen gespeicherten Wert.
  • CacheOffset Dieses Feld wird lediglich bei der Ausführungszeit verwendet und hat in der Datei keine Bedeutung.
  • Der Namenpool folgt unmittelbar dem Eintragsarray. Dieser Abschnitt von HPOMF.PRP enthält die mit Null abgeschlossenen Namen von Eigenschaften in der Eigenschaftenliste in der gleichen Reihenfolge wie das Eintragsarray. Die Eigenschaften können derartige Dinge wie Titel, Benutzerbemerkungen, Datum und Zeit der Erzeugung, den Benutzer, der das Objekt erzeugt hat, etc., umfassen. Für weitere Informationen bezüglich der Eigenschaften siehe Anhang D.
  • HPOMF.PRP wächst wie benötigt dynamisch. Zu Anfang von HPOMF.PRP befindet sich eine 128 Byte große Bittabelle, die die Zuordnung der ersten 1.024 Seiten von HPOMF.PRP steuert. Jede Seite ist 32 Byte lang. Diese Seiten folgen unmittelbar der Bittabelle. Die Bittabelle ist ein Array von Worten, wobei das höchstwertigste Bit jedes Worts zuerst verwendet wird. Folglich steuern die Bits 15 bis 0 des ersten Worts der Bittabelle jeweils die Zuordnung der Seiten 0 bis 15 der Datei.
  • Wenn die Speicherung in den ersten 1.024 Seiten unzureichend ist, wird eine zweite Bittabelle zu der Datei folgend der Seite 1.023 hinzugefügt. Diese Bittabelle steuert die Zuordnung von den Seiten 1.024 bis 2.047, die unmittelbar der zweiten Bittabelle folgen. Zusätzliche Bittabellen und Seiten werden auf die gleiche Art und Weise, wie benötigt, hinzugefügt.
  • Jedes Verzeichnis und jeder Eigenschaftswert wird als ein einzelner Block in der Datei gespeichert, d. h. als ein be nachbarter Lauf von Seiten, die alle in der gleichen Bittabelle zugeordnet sind. Dies bewirkt die Einschränkung, daß kein Verzeichnis oder kein Wert 32 KBytes (1.024 · 32) in der Länge überschreiten kann.
  • Auf die Systemdatei 605 HPOMF.INS wird ferner als SYSINSTL Bezug genommen. Die HPOMF.INS enthält eine Liste der Dateien, die zu dem System kopiert wurden, als jede Klasse installiert wurde. Diese Informationen werden derart verwendet, daß diese Dateien gelöscht werden können, wenn die Klasse deinstalliert wird.
  • Der unmittelbare Anfang von HPOMF.INS ist ein Doppelwortwert, der als ein Gültigkeits/Versions-Identifizierer dient. Bei dem bevorzugten Ausführungsbeispiel muß der Wert dieses Doppelworts OIOIABCD hexadezimal sein, um gültig zu sein. Diese Zahl wird in der Tabelle 8, wie gezeigt, aufgrund der Protokolle zur Speicherung in dem speziellen Prozessor, der durch das bevorzugte Ausführungsbeispiel verwendet wird, d. h, ein 80286 Mikroprozessor, der durch die Intel Corporation hergestellt wird, gespeichert.
  • Auf das Doppelwort folgt eine Serie von Datensätzen mit variabler Länge. Es gibt einen Datensatz für jede installierte Klasse. Das erste Wort für jeden Datensatz ist die Länge des Rests des Datensatzes in Bytes. Auf dieses folgt der mit Null abgeschlossene Klassenname der installierten Klasse. Dann folgen die Dateinamen der Dateien, die in die OMF- Verzeichnisse kopiert werden, wobei jeder derselben durch ein Nullbyte abgeschlossen ist und von einem Byte angeführt wird, das die Länge des Dateinamens angibt, umfassend das Längenbyte und den Nullabschließer. Wenn der Dateiname mit dem speziellen Zeichen "*" beginnt, wird angenommen, daß die Datei in dem Verzeichnis HPNWPROG positioniert ist. Wenn der Dateiname mit dem speziellen Zeichen "+" beginnt, wird angenommen, daß die Datei in dem Verzeichnis HPNWDATA positioniert ist.
  • Man nimmt beispielsweise an, daß zwei Klassen installiert sind: eine Klasse "AB" und eine Klasse "CDE". Die Klasse "AB" hat bewirkt, daß zwei Dateien installiert wurden: "Z" in dem Verzeichnis HPNWPROG 668 und "YY" in dem Verzeichnis HPNWDATA. Die Klasse "CDE" hat bewirkt, daß eine Datei installiert wurde: "XXX" in dem Verzeichnis HPNWPROG 668. Für diesen Fall zeigt die folgende Tabelle 8 die Inhalte von HPOMF.INS für dieses Beispiel: Tabelle 8
  • Auf die Systemdatei 606 HPOMF.SDF wird ferner als "Ausschaltdatei" Bezug genommen. Die HPOMF.SDF existiert lediglich, wenn das System ordnungsgemäß ausgeschaltet wurde. Dieselbe wird gelöscht, sowie das System gestartet wird, und erzeugt, sowie das System abgeschaltet wird. Beim Einschalten nimmt die OMF, wenn diese Datei fehlt, an, daß die letzte Sitzung anormal geendet hat, und folglich geht dieselbe durch die Absturzwiederherstellungsprozeduren derselben, um die Systemdateien so gut wie möglich wieder gültig zu machen und zu reparieren. Die Systemdateien können sich in einem ungültigen aber vorhersagbaren Zustand bei einem Absturz befinden. Diese Fehler werden ohne einen Benutzereingriff korrigiert. Gewisse andere Arten von Dateikonsistenzfehlern werden erfaßt, dieselben sind jedoch ausgehend von einem "gewöhnlichen" Systemabsturz nicht wirklich möglich. Diese Fehler sind im allgemeinen nicht korrigierbar, und die OMF wird es dem System bei diesem Fall nicht ermöglichen hochzufahren.
  • Wenn die HPOMF.SDF vorhanden ist, enthält dieselbe eine Liste von Objekten. Wenn das System normal ausgeschaltet wird, kann jedes Objekt, das aktiv ist, zu diesem Zeitpunkt die OMF abfragen, daß dasselbe neu gestartet wird, wenn das System neu gestartet wird. Die Liste von Objekten ist dann die Liste von Etiketten von Objekten, die abgefragt haben, daß dieselben neu gestartet werden, wenn das System neu gestartet wird.
  • Das erste Wort in HPOMF.SDF ist ein Flagwort. Wenn dieses Wort nicht Null ist, wird die OMF den Absturzwiederherstellungscode derselben laufen lassen, sogar wenn HPOMF.SDF existiert. Ein normales Ausschalten wird diese Flag, wenn die Datei erzeugt wird, einstellen, wenn ein schwerwiegender Fehler in der beendeten Sitzung aufgetreten ist.
  • Nach dem ersten Wort ist der Rest der Datei eine Folge von Drei-Byte-Datensätzen. Die ersten zwei Bytes jedes Datensatzes enthalten das Etikett des Objekts, das wiederhergestellt werden soll. Das niedrigstwertigste Byte ist das erste. Das dritte Byte wird bei dem bevorzugten Ausführungsbeispiel nicht verwendet und ist Null.
  • Wenn beispielsweise das System ordnungsgemäß in der letzten Sitzung ausgeschaltet wird, und wenn zwei Objekte, die die Etiketten 2 bzw. 7 aufweisen, einen Neustart abgefragt haben, werden die Inhalte von HPOMF.SDF derart sein, wie es in der folgenden Tabelle 9 dargelegt ist. Tabelle 9
  • Die Systemdatei 7 HPOMFICO. NWE ist eine ausführbare Datei einer dynamischen Bibliothek von Microsoft Windows, die einen Platzhaltereintragspunkt und keine Daten enthält. Microsoft Windows ist ein Programm, das durch die Microsoft Corporation, mit der Geschäftsadresse bei 16011 NE 36th Way, Redmond, WA 98073-9717 verkauft wird. Die HPOMFICO. NWE enthält ferner als "Resourcen" die Ikonen jeder installierten Klasse. Die OMF modifiziert die HPOMFICO. NWE direkt während der Ausführungszeit und lädt und entlädt dieselbe, um die Ikonresourcen von derselben zu erhalten. Das Format von HPOMFICO. NWE ist in der Dokumentation von Microsoft Windows definiert, die durch die Microsoft Corporation vertrieben wird.
  • Das normale Arbeiten mit einer Ansicht (siehe die vorhergehende Erörterung bezüglich der Ansichten) bewirkt, daß die Anwendung eines Kinds aufgerufen wird. Dort wo große Anwendungen betroffen sind, kann dies einen großen unnötigen Überhang bewirken. Die Verwendung von Schnappschüssen ermöglicht, daß dieser Überhang eliminiert wird.
  • Ein Schnappschuß ist ein Objekt, das einen ausführbaren Code von einer getrennten Bibliothek verwendet, auf die als eine dynamische Zugriffsbibliothek (oder DAL; DAL = Dynamic Access Library) Bezug genommen wird, und das nicht den vollständigen ausführbaren Code der Anwendung verwendet. Die einzigste Datendatei, die einem Schnappschuß zugeordnet ist, enthält Daten, die von einem Kindobjekt zu einem Elternobjekt gesendet werden sollen. Der Code, der die Datendatei verkapselt, wird trotzdem, obwohl auf denselben als dynamische Bibliothek Bezug genommen wird, in dem Verzeichnis HPOMFPROG (Verzeichnis 668) gespeichert.
  • Beispielsweise zeigt Fig. 81 ein Elternobjekt 501, das mit einem Kindobjekt 502 durch eine Verbindung 504 verbunden ist. Der Verbindung 504 ist ein Schnappschuß 503 zugeordnet. Sobald das Kindobjekt den Schnappschuß 503 in einem Ansichtenspezifikationsdatensatz für die Verbindung 504 bezeichnet hat, ist der Schnappschuß 503 in der Lage, Daten von dem Kindobjekt 503 zu den Eltern 501 zu liefern, ohne die Notwendigkeit des Aufrufens einer Anwendung, die dem Kindobjekt 502 zugeordnet ist.
  • Wie in Fig. 82 gezeigt, muß, wenn es keinen Schnappschuß gibt, das Kindobjekt 502 aktiv sein, um Ansichtsdaten 522 zu dem Elternobjekt 501 zu senden, dafür daß das Elternobjekt 501 Ansichtsdaten 522 in einer Fensteranzeige 521 anzeigt.
  • In Fig. 83 ist jedoch der Schnappschuß 503 Ansichtdaten 522 zu dem Elternobjekt 501 liefernd gezeigt, ohne die Notwendigkeit, daß das Kind 502 aktiv ist. Weitere Implementationsdetails von Schnappschüssen sind in Anhang B, Anhang C und Anhang D gegeben.
  • Ein Programm, das nicht ursprünglich zur Verwendung mit der OMF 100 geschrieben wurde, kann verkapselt werden und viele Merkmale von Programmen erben, die zur Verwendung mit der OMF 100 entworfen wurden. In Kapitel 6 des Programmer's Guide der HP-NewWave-Umgebung, der hierin als Anhang D angeheftet ist, sind Implementationsdetails zum Entwerfen eines verkapselnden Programms gegeben. In Anhang E ist eine Auflistung für ein Programm angegeben, das eine typische Verkapselung von Programmen liefert. In Anhang F sind Beispiele von Dateien gegeben, die für die Verkapselung von einem Programm in die NewWave-Umgebung erzeugt werden müssen.
  • Unter Verwendung der Fig. 84-145 sind die Merkmale der verkapselten Anwendungen beschrieben.
  • Fig. 84 ist ein Blockdiagramm, das zeigt, wie eine Anwendung 846 zur Verwendung mit der OMF 100 verkapselt werden kann. Wie es aus der vorhergehenden Erörterung des Stands der Technik offensichtlich sein kann und durch die Fig. 84 dargestellt ist, sind typische Anwendungen 842, die für die NewWave-Umgebung geschrieben sind, fähig, direkt mit einem Benutzer 843 und mit der OMF 100 wechselzuwirken. Die Datendateien für die Anwendungen 842 sind Teil von OMF-Datendateien 840. Wenn eine beliebige der Anwendungen 842 wünscht auf Datendateien zuzugreifen, führen dieselben dies durch die OMF 100 durch.
  • Gemäß dem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung müssen keine Modifikationen an der verkapselten Anwendung 846 durchgeführt werden, um dieselbe in der New- Wave-Umgebung zu integrieren. Es ist der verkapselten Anwendung 846 ermöglicht, fortzufahren, um die eigenen Benutzer datendateien 849 derselben direkt zu manipulieren. Eine Verkapselungsschale 845 dient als eine Schnittstelle zwischen der OMF 100 und der verkapselten Anwendung 846. Die verkapselte Anwendung weiß nicht, daß die Verkapselungsschale 845 existiert, daher sendet die verkapselte Anwendung 846 keine Daten zu der Verkapselungsschale 845. Die Verkapselungsschale 845 wechselwirkt jedoch mit der verkapselten Anwendung 846 und mit den Benutzerdatendateien 849.
  • Ein Schalenfilter 844 wirkt als ein Überwachungsprogramm zwischen dem Benutzer 843 und der verkapselten Anwendung 846. Die meiste Kommunikation zwischen dem Benutzer 843 und der verkapselten Anwendung 846 leitet das Schalenfilter 844 lediglich weiter. Das Schalenfilter kann jedoch dort, wo es geeignet ist, die Kommunikation zwischen dem Benutzer 843 und der verkapselten Anwendung 846 abfangen. Sobald die Kommunikation abgefangen wurde, kann das Schalenfilter beispielsweise die Kommunikation zu der Verkapselungsschale 845 für ein weiteres Verarbeiten weiterleiten.
  • Die Verkapselungsschale 845 ist derart geschrieben, um typischerweise eine Anzahl von unterschiedlichen Anwendungstypen handzuhaben. Es sind jedoch einige Informationen nötig, die die Verkapselungsschale 845 benötigt, um etwas über jede verkapselte Anwendung zu wissen. Daher sind jeder verkapselten Anwendung Konfigurationseigenschaften zugeordnet, auf die die Verkapselungsschale 845 bezüglich Informationen zugreift, die die Verkapselungsschale benötigt, um etwas über die verkapselte Anwendung zu wissen. Bei der verkapselten Anwendung 846 greift die Verkapselungsschale 845 auf Informationen zu, die in den Konfigurationseigenschaften 847 gespeichert sind.
  • Ferner können unter Verwendung des Schalenfilters 844 und der Verkapselungsschale 845 zusätzliche Merkmale zu einer verkapselten Anwendung hinzugefügt werden. Definitionen für derartige hinzugefügte Merkmale, die für eine spezifische Anwendung spezifisch sind, können in einer getrennten Datei gespeichert werden, auf die durch die Verkapselungsschale 845 zugegriffen wird. Beispielsweise werden Definitionen für Merkmale, die spezifisch für die verkapselte Anwendung 846 sind, in einer Menü/Makro-Definitionsdatei 848 gespeichert.
  • Fig. 84A zeigt ein Beispiel, wie eine Dateistruktur gemäß einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung implementiert werden kann. Ein Wurzelverzeichnis 850 weist eine Mehrzahl von Unterverzeichnissen auf. Ein Unterverzeichnis 851 enthält eine Serie von Unterverzeichnissen -- z. B. ein Unterverzeichnis 855, ein Unterverzeichnis 856 und ein Unterverzeichnis 857 -- die OMF-Objektdatendateien enthalten. Die Dateien innerhalb des Unterverzeichnisses 851 sind Dateien, die sich innerhalb der NewWave-Datendomäne befinden, d. h. auf diese Dateien wird durch die OMF 100 zugegriffen. Ein Unterverzeichnis 852 enthält eine Serie von Unterverzeichnissen -- z. B. ein Unterverzeichnis 858, ein Unterverzeichnis 859, ein Unterverzeichnis 860 und ein Unterverzeichnis 861 -- die Verkapselungsdatendateien für verschiedene verkapselte Anwendungen enthalten. Das Unterverzeichnis 852 enthält eine zweite Serie von Unterverzeichnissen -- z. B. ein Unterverzeichnis 865, ein Unterverzeichnis 866 und ein Unterverzeichnis 867 --, die temporäre Datendateien enthalten, die zur Verkapselungsumwandlung verwendet werden. Ein Unterverzeichnis 853 umfaßt Dateien, die einen ausführbaren Code enthalten, die die NewWave-Umgebung erzeugen und aufrecht erhalten. Ein Unterverzeichnis 854, ein Unterverzeichnis 862, ein Unterverzeichnis 863 und ein Unterverzeichnis 864 enthalten ausführbaren Code für Anwendungen, die nicht spezifisch entworfen sind, um in der NewWave-Umgebung zu arbeiten.
  • In Fig. 84B ist die Anatomie einer Dateispezifikation für Dateien gezeigt, die bei MS-DOS-Systemen verwendet werden. Die Dateispezifikation umfaßt eine Laufwerksbezeichnung 874, einen Verzeichnispfad 871, einen Dateiwurzelnamen 872 und eine Erweiterung 873.
  • Bei der folgenden Erörterung wird eine Computersitzung in Verbindung mit Figuren, die Bildschirme darstellen, die auf dem Monitor 14 erscheinen, verwendet, um die Funktionalität der Verkapselungsschale 845 mit einer verkapselten Anwendung darzustellen.
  • In Fig. 85 ist gezeigt, daß das Fenster für das NewWave-Büro eine Anzahl von Ikonen aufweist, von denen einige Objekte darstellen, die verkapselte Anwendungen sind. Von den gezeigten Objekten sind "AdvanceLink", "Info. Zugriff", "Terminal", "Kalender" und "Rechner" verkapselte Anwendungen.
  • Von dem Standpunkt eines Benutzers aus kann das Erzeugen eines neu verkapselten Objekts ähnlich zu dem Erzeugen von gewöhnlichen Objekten durchgeführt werden. In Fig. 85A wird der Cursor 781 verwendet, um "Erzeugen neu..." aus dem Pull-Down-Menü 782 auszuwählen.
  • Nach der Auswahl erscheint der Dialogkasten 779, wie es in Fig. 86 gezeigt ist. Die fünf Ikonen, die innerhalb des Dialogkastens 779 angezeigt sind -- "AdvanceWrite", "MS- Word", "WordPerfect", "MS-Write" und "MS-Paint" --, stellen verkapselte Anwendungen dar. Das Ikon "MS-Write" ist hervorgehoben und folglich ausgewählt. Der Cursor 781 wird nun verwendet, um die Region auszuwählen, die mit "OK" bezeichnet ist.
  • Sobald diese Region ausgewählt ist, erscheint ein Dialogkasten 1101, wie es in Fig. 87 gezeigt ist. Ein standardmäßiges Verzeichnis für Datendateien für "MS-Write" erscheint in einer Region 1104. Das standardmäßige Verzeichnis ist "C:/ HPNWDOS/MSWRITE". Dies entspricht dem Unterverzeichnis 861, das in Fig. 84A gezeigt ist. In einem Kasten 1102 sind die existierenden Anwendungsdateien in dem standardmäßigen Verzeichnis aufgelistet. Ein neuer Name für eine Datei kann in eine Region 1106 unter Verwendung der Tastatur 19 geschrieben werden. In Fig. 88 wurde der Name "PROBE" in die Region 1106 eingetippt. Nachdem der Cursor 781 verwendet wurde, um die Region auszuwählen, die mit "OK" bezeichnet ist, erscheint ein Objekt "Probe" in dem Fenster für das "NewWave- Büro", wie es in Fig. 89 gezeigt ist, und auf das durch den Cursor 781 gezeigt wird. Eine Datendatei "PROBE.WRI" wird erzeugt und in das Verzeichnis "C:/HPNWDOS/MSWRITE" (Unterverzeichnis 861) plaziert.
  • Obwohl der Benutzer sehr geringe Unterschiede bei der Erzeugung eines Objekts sieht, das sich auf ein verkapseltes Programm bezieht, führen die OMF 100 und die Verkapselungsschale 845 verschiedene Einstellungen an der Standardprozedur durch. In der Beschreibung des Flußdiagramms in Fig. 143 im folgenden ist der Prozeß, den die OMF 100 und die Verkapselungsschale 845 durchgehen, wenn ein Objekt erzeugt wird, beschrieben.
  • Wenn der Cursor 781 über das Wort "PROBE" in dem Ikon "PROBE" plaziert wird, wird eine Taste an der Maus 20 geklickt, wobei die Verzeichnisposition der Datendatei "PROBE.WRI" angezeigt wird, wie es in Fig. 90 gezeigt ist. Der Objektname "PROBE" kann nicht verändert werden. Bei dem bevorzugten Ausführungsbeispiel besteht der einzigste Weg darin, den Namen zu ändern, das Objekt zu kopieren, was folglich eine neue Datendatei in dem Verzeichnis "C:/ HPNWDOS/MSWRITE" erzeugt. Ein weiterer Klick auf eine Taste der Maus 20 führt dazu, daß die Verzeichnisposition nicht länger gezeigt wird, wie es in Fig. 91 zu sehen ist. Die Anwendung für "PROBE" kann durch Plazieren des Cursors 781 über das Ikon für "PROBE", wie es in Fig. 91 gezeigt ist, und durch Doppelklicken einer Taste an der Maus 20 geöffnet werden.
  • In der Beschreibung des Flußdiagramms in Fig. 141 im folgenden ist der Prozeß, den die OMF 100 und die Verkapselungsschale 845 vor dem Öffnen eines Objekts für eine verkapselte Anwendung durchgehen, weiter beschrieben. Sobald die OMF 100 bestimmt, daß dieselbe die verkapselte Anwendung öffnen kann, sendet die OMF 100 eine Nachricht zu der Verkapse lungsschale 845, um das Objekt zu öffnen, das der ausgewählten, verkapselten Anwendung zugeordnet ist. Die Verkapselungsschale 845 greift auf die. Konfigurationseigenschaften 847 für eine Anweisungszeichenfolge und Parameter (und optional ein Tastendruckmakro) zu, die die ausgewählte, verkapselte Anwendung starten werden. Die Verkapselungsschale 845 überwacht die Einleitung der verkapselten Anwendung und installiert das Schalenfilter 844, um Wechselwirkungen zwischen dem Benutzer 843 und der verkapselten Anwendung 846 zu steuern. Das optionale Tastendruckmakro wird zu der verkapselten Anwendung über das Schalenfilter 844 gespeist.
  • Für verkapselte Anwendungen, für die Menü/Makros geschrieben wurden, sichert die Verkapselungsschale 845 Informationen über Menü/Makros aus der Menü/Makro-Definitionsdatei 848. Diese Informationen werden in dem Speicher des Computers 18 aufrechterhalten, um es dem Schalenfilter 844 zu ermöglichen, auf jegliche Handlungen durch den Benutzer anzusprechen, die ein Menü/Makro aufrufen. Dies betrifft beispielsweise das Abfangen einer speziellen Tastendruckfolge durch das Schalenfilter 844. Wenn diese Tastendruckfolge erkannt wird, zeigt das Schalenfilter 844 die Menüs an, die durch die Menü/Makro-Definitionsdatei 848 spezifiziert sind. An diesem Punkt fängt das Schalenfilter 844 alle Benutzeranweisungen von der Tastatur 19 oder der Maus 20 ab, bis der Benutzer 843 eine Menüanweisung auswählt oder den Menüzugriff aufhebt. Wenn eine Menüanweisung ausgewählt ist, sendet das Schalenfilter 844 ein Tastendruckmakro zu der verkapselten Anwendung 846, das in der Menü/Makro-Definitionsdatei 848 gespeichert ist und das der ausgewählten Menüanweisung zugeordnet ist.
  • In Fig. 92 ist ein Fenster 1103 für die Anwendung "Write" geöffnet gezeigt. "Write" ist ein Textverarbeitungsprogramm, das durch die Microsoft Corporation vertrieben wird und entworfen ist, um in Verbindung mit dem Programm Microsoft Windows zu arbeiten. Der Anwendungsname erscheint in dem Titel des Fensters 1103 als "Write". Unter Verwendung der Tastatur 19 können Daten, wie in Fig. 93 gezeigt, eingegeben werden. Die Verwendung des Cursors 781, um "Beenden" in einem Pull- Down-Menü 1105 auszuwählen, startet den Beendigungsprozeß. Das Schalenfilter 844 fängt diese Nachricht ab, die eine Beendigung abfragt. Wie in Fig. 95 gezeigt, erzeugt die Prozedur "Write" als Teil der Beendigungsprozedur einen Dialogkasten 1107, der anfragt, ob der Benutzer an der Datei vorgenommene Änderungen speichern möchte. Wenn ja, werden die Änderungen an der Datendatei "PROBE.WRI" in dem Verzeichnis "C:/HPNWDOS/MSWRITE" vorgenommen.
  • Das Schalenfilter 844 benachrichtigt die Verkapselungsschale 845, daß der Benutzer seine Sitzung mit der verkapselten Anwendung 849 beendet. Die Verkapselungsschale 845 informiert die OMF 100, daß die verkapselte Anwendung sich schließt. Die Verkapselungsschale 845 beednet das Schalenfilter 844. Basierend auf Informationen, die in den Konfigurationseigenschaften 847 geliefert werden, führt die Verkapselungsschale 845 eine automatische Registrierung von Dateien und Dateiumwandlungsprozeduren durch, die im folgenden erörtert sind. Dann gibt die Verkapselungsschale 845 die Steuerung an die OMF 100 zurück.
  • Wenn es in den Konfigurationseigenschaften 847 spezifiziert ist, führt die Verkapselungsschale 845 eine automatische Registrierung der Dateien wie folgt durch. Die Verkapselungsschale 845 zeichnet die Systemzeit auf, wenn dieselbe die verkapselte Anwendung 846 startet. Wenn die verkapselte Anwendung 846 beendet wird, sucht die Verkapselungsschale 845 in dem Dateibereich, auf den standardmäßig Bezug genommen wird, nach der verkapselten Anwendung -- d. h. in dem Unterverzeichnis des Unterverzeichnisses 852, das der verkapselten Anwendung entspricht -- und vergleicht einen Zeitstempel jeder Datei mit der aufgezeichneten Startzeit der verkapselten Anwendung. Wenn eine neue Datei lokalisiert wird, und auf diese Datei nicht schon durch ein Objekt Bezug genommen wird, erzeugt die Verkapselungsschale 845 automatisch ein neues Objekt der gleichen Klasse wie die Verkapselungsschale 845. Das neue Objekt nimmt Bezug auf die neue Datei und die Verkapselungsschale 845. Der Titel des neuen Objekts wird auf den Dateinamen der neuen Datei eingestellt. Dieser Prozeß wird für alle neuen Dateien, die vorgefunden werden, durchgeführt. Dies ermöglicht es dem Benutzer neue Dateien zu erzeugen, während das Verkapselungsprogramm laufen gelassen wird. Wenn die Anwendung geschlossen wird, werden neue Ikonen dargestellt, die die Dateien darstellen, die erzeugt wurden.
  • Zusätzlich werden, wenn es durch die Konfigurationseigenschaften 847 spezifiziert ist, zu der Beendigungszeit andere Unterverzeichnisse innerhalb des Unterverzeichnisses 852, die andere verkapselte Klassen darstellen, nach Dateien abgesucht, die einen Zeitstempel aufweisen, der später liegt als die aufgezeichnete Startzeit der verkapselten Anwendung. Die Verkapselungsschale 845 kann dann Objekte für diese Dateien erzeugen, die zu der geeigneten Klasse gehören. Diese neuen Dateien erscheinen ferner als neue Ikonen, wenn die Anwendung geschlossen wird.
  • In Fig. 96 wurde "PROBE" geschlossen. Objekte, die verkapselte Anwendungen umfassen, können durch einen Benutzer auf die gleiche Art und Weise manipuliert werden, wie der Benutzer normale Objekte manipuliert. Beispielsweise wurde in Fig. 97 ein neuer Ordner mit dem Titel "Wichtige Dokumente" erzeugt und geöffnet. In den Fig. 97 und 98 ist der Cursor 781 gezeigt, wie derselbe das Objekt "PROBE" zu einem geöffneten Fenster 1107 für den Ordner "Wichtige Dokumente" bewegt. In Fig. 99 ist das Objekt "PROBE" innerhalb des Fensters 1107 gezeigt.
  • Wie in Fig. 100 gezeigt, führte das Plazieren des Cursors 781 über den Namen "PROBE" und das Klicken einer Taste an der Maus 20 zu dem vollen Namen "C:/HPNWDOS/MSWRITE/PROBE". Die eigentliche Position der Datendatei "PROBE.WRI" in dem Verzeichnis "C:/HPNWDOS/MSWRITE" ist unverändert, obwohl das Objekt "PROBE" von dem "NewWave-Büro" zu dem Ordner "Wich tige Dokumente" bewegt wurde.
  • Ferner werden die Anweisungen "Ausschneiden", "Kleben", "Teilen" und "Kopieren" für die verkapselte Anwendung durch einen Benutzer auf die gleiche Art und Weise durchgeführt, wie der Benutzer die Anweisungen "Ausschneiden", "Kleben", "Teilen" und "Kopieren" für gewöhnliche Objekte durchführt. In Fig. 101 wurde das Objekt "PROBE" ausgewählt. Der Cursor 781 wird verwendet, um die Anweisung "Ausschneiden" aus einem Pull-Down-Menü 1109 auszuwählen. Das Resultat, das in Fig. 102 zu sehen ist, besteht darin, daß das Objekt "PROBE" aus dem Ordner "Wichtige Dokumente" "ausgeschnitten" wurde und daher nicht länger in dem Fenster 1107 erscheint. Ferner wird in Fig. 102 die Anweisung "Kleben" aus dem Pull-Down- Menü 783 unter Verwendung des Cursors 781 ausgewählt. Das Resultat, das in Fig. 103 sichtbar ist, besteht darin, daß das Objekt "PROBE" von dem Ordner "Wichtige Dokumente" zu dem "NewWave-Büro" bewegt wurde. Wiederum führt das Plazieren des Cursors 781 über dem Namen "PROBE" und das Klicken einer Taste an der Maus 20 dazu, daß der volle Name "C:/ HPNWDOS/MSWRITE/PROBE" erscheint. Die eigentliche Position der Datendatei "PROBE.WRI" in dem Verzeichnis "C:/HPNWDOS/ MSWRITE" ist wiederum unverändert.
  • Ferner ist in Fig. 104 das Objekt "PROBE" als hervorgehoben und folglich ausgewählt gezeigt. Die Anweisung "Teilen" in dem Pull-Down-Menü 783 ist unter Verwendung des Cursors 781 ausgewählt. In Fig. 105 ist die Anweisung "Kleben" in dem Pull-Down-Menü 1109 ausgewählt. Das Resultat, das in Fig. 106 gezeigt ist, besteht darin, daß das Objekt "PROBE" geteilt wird, und daß dasselbe sowohl in dem Fenster "New- Wave-Büro" als auch in dem Fenster 1107 erscheint.
  • In Fig. 107 ist das Objekt "PROBE" in dem "NewWave-Büro" hervorgehoben und folglich ausgewählt gezeigt. Der Cursor 781 wird verwendet, um die Anweisung "Kopieren" in dem Pull-Down-Menü 783 auszuwählen. In Fig. 108 wird der Cursor 781 verwendet, um die Anweisung "Kleben" in dem Pull-Down- Menü 783 auszuwählen. Das Resultat, das in Fig. 109 gezeigt ist, besteht darin, daß die "Kopie von: PROBE" in dem "New- Wave-Büro" erscheint. Zu diesem Zeitpunkt werden alle Dateien für das Objekt "Kopie von: PROBE" als gewöhnliche Objekte in einem der Unterverzeichnisse des Unterverzeichnisses 851 gespeichert. Es wird keine neue Datei in dem Unterverzeichnis 851, d. h. dem Verzeichnis "C:/HPNWDOS/MSWRITE", plaziert.
  • Wenn das Objekt "Kopie von: PROBE" durch Plazieren des'Cursors 781 über "Kopie von: PROBE" und durch Doppelklicken einer Taste an der Maus 20, wie in Fig. 110 gezeigt, geöffnet wird, ruft die OMF 100 die Verkapselungsschale 845 auf. Die Verkapselungsschale 845 prüft, um zu sehen, ob die Flag "Kopiertes-Objekt" eingestellt ist. Wenn die Flag Kopiertes-Objekt eingestellt ist, zeigt dies der OMF an, daß der Benutzer versucht, ein "kopiertes Objekt" zu öffnen, d. h. ein Objekt, das auf Daten für eine verkapselte Anwendung Bezug nimmt, die kopiert wurde, und für die die Datendatei noch nicht in einem Unterverzeichnis des Unterverzeichnisses 851 gespeichert wurde und nicht zu einem Unterverzeichnis des Unterverzeichnisses 851 bewegt wurde, wo dieselbe der verkapselten Anwendung verfügbar gemacht werden soll. Bei dem vorliegenden Fall fordert die Verkapselungsschale 845 den Benutzer auf, da der Benutzer versucht, ein "kopiertes Objekt" zu öffnen, einen neuen Namen einzugeben, indem dieselbe bewirkt, daß ein Dialogkasten 1101 erscheint, wie es in Fig. 111 gezeigt ist. Wie es aus dem Vergleich von Fig. 88 mit Fig. 111 sichtbar ist, wurde die Datei PROBE.WRI zu dem Kasten 1102 hinzugefügt. Dies passierte, als das Objekt "PROBE" erzeugt wurde. Wie es aus der Fig. 112 sichtbar ist, hat der Anwender über die Tastatur den neuen Namen "MEINDOK2" für das Objekt "Kopie von: PROBE" eingegeben. Nach dem Auswählen der Region "OK" in Fig. 112 mit dem Cursor 781 bewegt die Verkapselungsschale 845 die Datendatei von ihrer Position in einem Unterverzeichnis des Unterverzeichnisses 851, wo dieselbe ursprünglich in der OMF-Datendateispeicherungsdomäne lag, zu einer Position in dem Unterverzeichnis 861. Dann startet die Verkapselungsschale 845 die Anwendung "Write" und gibt "Write" den Dateinamen "MEINDOK2". "Write" öffnet "MEINDOK2". Die Inhalte von "MEINDOK2" sind eine Kopie der Daten von Objekt "PROBE" und sind in Fenster 1113 von Fig. 113 sichtbar. Wenn das Objekt "MEINDOK2" geschlossen ist, ist ein Ikon für "MEINDOK2" in dem "NewWave-Büro" zu sehen, wie es in Fig. 114 gezeigt ist, und es wird auf dasselbe durch den Cursor 781 gezeigt.
  • Wie in Fig. 115 gezeigt, führt das Plazieren des Cursors 781 über dem Namen "MEINDOK2" und das Klicken einer Taste an der Maus 20 dazu, daß der volle Name "C:/HPNWDOS/MSWRITE/MEIN- DOK2" erscheint. Die Position der Datendatei "MEINDOK2" ist in dem Verzeichnis "C:/HPNWDOS/MSWRITE".
  • Wie in Fig. 116 gezeigt, besteht eine Kurzschriftart des Kopierens von "MEINDOK2" darin, den Cursor 781 über "MEINDOK2" zu plazieren, die Taste "Ctrl" auf der Tastatur zu drücken und zu halten, während gleichzeitig ein Knopf an der Maus 20 gedrückt wird und der Cursor 781 zu einer anderen Position gezogen wird. Während dieser Operation verbleibt das Ikon für "MEINDOK2" in Schwarz hervorgehoben, und dasselbe wird nicht grau, wie für den Fall, bei dem dasselbe "bewegt" oder "geöffnet" wird. Das Resultat, das in Fig. 117 gezeigt ist, ist das Erscheinen von "Kopie von: MEINDOK2" auf dem NewWave-Büro".
  • In Fig. 118 wurden das Objekt "MEINDOK2" und "Kopie von: MEINDOK2" ausgewählt. Diese Objekte können von dem System durch Auswählen der Anweisung "Wegwerfen" in dem Pull-Down- Menü 783, wie gezeigt, entfernt werden.
  • In Fig. 119 wird der Cursor 781 verwendet, um die Anweisung "Alle Objekte zerstören" in dem Pull-Down-Menü 1117 auszuwählen. Das Resultat, das in Fig. 120 gezeigt ist, ist die Löschung der Objekte "MEINDOK2" und "Kopie von: MEINDOK2". Bei dem Fall von "MEINDOK2" löscht die Verkapselungsschale die Datei in dem Benutzerdateibereich. Für "Kopie von:
  • MEINDOK2" löscht die OMF die Datei in dem OMF-Dateibereich.
  • Die Fig. 121 und 122 enthalten ein Flußdiagramm, das die Schritte beschreibt, die durch die Verkapselungsschale 845 beim Schließen einer aktuellen Anwendung durchgeführt werden. Das Programm, das durch die Verkapselungsschale 845 laufen gelassen wird, und das durch das Flußdiagramm beschrieben ist, wird beim Schließen der aktuellen Anwendung, wie durch einen Schritt 950 gezeigt, betreten.
  • Bei einem Schritt 951 wird auf eine Datei HPOMF.DOS zugegriffen. HPOMF.DOS ist eine Datei, auf die durch die Verkapselungsschale 845 zugegriffen wird und die durch dieselbe aufrechterhalten wird, um die MS-DOS-Dateien zu verfolgen. Dieselbe liefert die notwendigen Informationen, um OMF-Objekte auf verkapselte Dateien abzubilden. Die HPOMF.DOS ist weiter hierin in der Erörterung der Fig. 144 und 145 beschrieben. Unter Verwendung von HPOMF.DOS erhält die Verkapselungsschale 845 die Eigenschaft "PROP_ENCAP- DATADIR". Die Eigenschaft "PROP_ENCAPDATADIR" ist eine Klasseneigenschaft, die das standardmäßige Verzeichnis anzeigt, in dem die DOS-Dateien für die spezielle Anwendung plaziert werden, die zu der Klasse gehört. Ein Schritt 952 beginnt eine Schleife, in der jede Datei in dem standardmäßigen Verzeichnis, das durch "PROG_ENCAPDATADIR" angezeigt ist, geprüft wird.
  • Bei der ersten Operation der Schleife, die bei einem Schritt 953 und einem Schritt 954 durchgeführt wird, wird der Zeit/ Datums-Stempel einer Datei innerhalb des standardmäßigen Verzeichnisses geprüft. Wenn der Zeit/Datums-Stempel der Datei später liegt als der Zeit/Datums-Stempel, zu dem die Anwendung geöffnet wurde, wird die Datei entweder als neu oder modifiziert betrachtet.
  • Wenn die Datei neu oder modifiziert ist, wird bei einem Schritt 955 die Wurzel des Dateinamens erhalten (siehe Fig. 84B). Alle Dateien innerhalb des standardmäßigen Verzeich nisses, die den gleichen Dateinamen aufweisen wie die Datei, werden als Teil des Dateisatzes der Datei betrachtet.
  • Bei einem Schritt 956 wird unter Verwendung der Datei HPOMF. DOS bestimmt, ob die Datei mit einem Objekt verbunden ist. Wenn dies nicht der Fall ist, wird bei einem Schritt 957 ein neues Objekt der Klasse der aktuellen Anwendung erzeugt und mit dem Dateisatz der Datei verbunden. Ferner wird bei einem Schritt 958 ein neuer Eintrag zu der HPOMF.DOS für den Dateisatz (siehe Fig. 145) hinzugefügt.
  • Wenn die Datei schon mit einem Objekt verbunden ist, wird bei einem Schritt 959 bestimmt, ob das Objekt aktiv ist. Wenn die Datei aktiv ist, wird bei einem Schritt 960 zu dem Objekt eine Nachricht gesendet, die anzeigt, daß sich die Datei geändert hat.
  • Sobald die Schleife, die bei dem Schritt 952 beginnt, abgeschlossen ist, wird die Klasseneigenschaft "PROP_EXPORTEDEN CAP" für die aktuelle Anwendung bei einem Schritt 961 geprüft. Die Eigenschaft "PROP_EXPORTEDENCAP" enthält, wenn dieselbe für die aktuelle Anwendung existiert, eine Liste von Klassen von anderen verkapselten Anwendungen als die aktuelle Anwendung. Der Zweck der Auflistung dieser Anwendungen besteht darin, daß das standardmäßige Verzeichnis, in dem jede dieser verkapselten Anwendungen DOS-Dateien speichert, überprüft werden kann.
  • Ein Schritt 962 beginnt eine Schleife, in der das standardmäßige Verzeichnis für jede verkapselte Anwendung, die in "PROP_EXPORTEDENCAP" aufgelistet ist, geprüft wird. Bei der ersten Operation der Schleife, die bei einem Schritt 963 durchgeführt wird, wird auf die Datei HPOMF.DOS zugegriffen, um die Identität des standardmäßigen Verzeichnisses für jede verkapselte Anwendung zu erhalten. Dieselbe ist in der Klasseneigenschaft "PROP_ENCAPDATADIR" für diese verkapselte Anwendung umfaßt.
  • Sobald die Klasseneigenschaft "PROP_ENCAPDATADIR" für eine spezielle, verkapselte Anwendung erhalten wurde, wird eine weitere Schleife beginnend bei einem Schritt 964 betreten. In dieser Schleife wird jede Datei in dem standardmäßigen Verzeichnis, das durch "PROP_ENCAPDATADIR" für die spezielle, verkapselte Anwendung spezifiziert ist, geprüft.
  • Bei der ersten Operation der Schleife, die bei einem Schritt 965 und einem Schritt 966 durchgeführt wird, wird der Zeit/ Datums-Stempel einer Datei innerhalb des standardmäßigen Verzeichnisses geprüft. Wenn der Zeit/Datums-Stempel der Datei später liegt als der Zeit/Datums-Stempel, zu dem die Anwendung geöffnet wurde, wird die Datei entweder als neu oder modifiziert betrachtet.
  • Wenn die Datei neu oder modifiziert ist, wird bei einem Schritt 967 die Wurzel des Dateinamens erhalten (siehe Fig. 84B). Alle Dateien innerhalb des standardmäßigen Verzeichnisses, die den gleichen Dateinamen wie die Datei aufweisen, werden als Teil des Dateisatzes der Datei betrachtet.
  • Bei einem Schritt 968 wird unter Verwendung der Datei HPOMF. DOS bestimmt, ob die Datei mit einem Objekt verbunden ist. Wenn dies nicht der Fall ist, wird bei einem Schritt 969 ein neues Objekt der Klasse der aktuellen Anwendung erzeugt und mit dem Dateisatz der Datei verbunden. Ferner wird bei einem Schritt 970 ein neuer Eintrag zu der HPOMF.DOS für der Dateisatz (siehe Fig. 145) hinzugefügt.
  • Wenn die Datei schon mit einem Objekt verbunden ist, wird bei einem Schritt 971 bestimmt, ob das Objekt aktiv ist. Wenn die Datei aktiv ist, wird bei einem Schritt 972 dem Objekt eine Nachricht gesendet, daß sich die Datei geändert hat.
  • Sobald die Schleife, die bei einem Schritt 962 beginnt, abgeschlossen ist, wird die Klasseneigenschaft "PROP_EXPORT EDNW" bei einem Schritt 974 geprüft. Die Eigenschaft "PROP_ EXPORTEDNW" enthält, wenn dieselbe für die aktuelle Anwendung existiert, eine Liste von Klassen von wirklichen New- Wave-Anwendungen, die in der Lage sind, eine Datei, die durch die aktuelle Anwendung erzeugt wurde, in eine Datei, die durch die NewWave-Anwendung nutzbar ist, umzuwandeln.
  • Ein Schritt 977 beginnt eine Schleife, in der ein Umwandlungsverzeichnis jeder NewWave-Anwendung, die in "PROP_ EXPORTEDNW" aufgelistet ist, geprüft wird. Bei der ersten Operation der Schleife, die bei einem Schritt 977 durchgeführt wird, wird auf die Datei HPOMF.DOS zugegriffen, um die Dateiliste innerhalb des aktuellen Umwandlungsverzeichnisses zu erhalten.
  • Sobald die Dateiliste für ein Umwandlungsverzeichnis für eine spezielle NewWave-Anwendung erhalten wurde, wird eine weitere Schleife beginnend bei einem Schritt 978 betreten. Bei dieser Schleife wird jede Datei in dem Umwandlungsverzeichnis geprüft.
  • Bei der ersten Operation der Schleife, die bei einem Schritt 979 und einem Schritt 980 durchgeführt wird, wird der Zeit/ Datums-Stempel einer Datei innerhalb des Umwandlungsverzeichnisses geprüft. Wenn der Zeit/Datums-Stempel der Datei später liegt als der Zeit/Datums-Stempel, zu dem die Anwendung geöffnet wurde, wird die Datei entweder als neu oder modifiziert betrachtet.
  • Wenn die Datei neu oder modifiziert ist, wird bei einem Schritt 981 ein neues Objekt -- der Klasse der NewWave- Anwendung -- erzeugt, das auf die Datei Bezug nimmt. Bei einem Schritt 982 aktiviert die Verkapselungsschale 845 das neu erzeugte Objekt, und dieselbe sendet zu dem Objekt eine Nachricht "Umwandlung" mit dem Namen der Datei.
  • Bei einem Schritt 983 prüft die Verkapselungsschale 845, um zu sehen, ob die Umwandlung erfolgreich war. Wenn die Umwandlung nicht erfolgreich war, zeigt bei einem Schritt 984 die Verkapselungsschale dem Benutzer eine Warnnachricht an mit einer Mahnung, daß die nicht umgewandelte Datei noch immer in dem Umwandlungsverzeichnis existiert. Wenn die Umwandlung erfolgreich war, löscht bei einem Schritt 985 die Verkapselungsschale 845 die Datei aus dem Umwandlungsverzeichnis.
  • Sobald alle Umwandlungen abgeschlossen sind, wird die Verkapselungsschale 845 bei einem Schritt 975 geschlossen. Die folgende Erörterung zeigt, wie das oben beschriebene Schließen einer Anwendung einem Benutzer erscheint.
  • Eine Kopie einer Datei kann innerhalb einer Anwendung erzeugt werden. In Fig. 123 wurde das Objekt "PROBE" geöffnet und die Anwendung "Write" läuft, wobei dieselbe Daten von der Datei "C:/HPNWDOS/MSWRITE/PROBE.WRI" in dem Fenster 1103 anzeigt. Der Cursor 781 wird verwendet, um die Anweisung "Speichern unter" aus dem Pull-Down-Menü 1105 auszuwählen. In Fig. 124 wird ein Dateiname innerhalb des standardmäßigen Verzeichnisses in eine Region 1120 des Dialogkastens 1121 eingetippt. Nach dem Auswählen der Region, die mit "OK" bezeichnet ist, unter Verwendung des Cursors 781, wird eine neue Datei hergestellt. Diese Datei weist jedoch kein zugeordnetes Objekt auf, da die OMF 100 nicht die Erzeugung der neuen Datei überwacht hat. Daher ist in Fig. 125 kein neues Objekt erschienen. Nach dem Verwenden des Cursors 781, um die Anweisung "Beenden" aus dem Pull-Down-Menü 1105 auszuwählen, wird das Fenster 1103 geschlossen. Wie oben beschrieben, sucht bei der Beendigung die Verkapselungsschale 845 den Dateibereich für die verkapselte Anwendung, auf den standardmäßig Bezug genommen wird -- bei diesem Fall das Unterverzeichnis 861 -- und vergleicht einen Zeitstempel jeder Datei mit der aufgezeichneten Startzeit der verkapselten Anwendung ab. Wenn eine neue Datei lokalisiert wird, und auf diese Datei nicht schon durch ein Objekt Bezug genommen wird, erzeugt die Verkapselungsschale 845 automatisch ein neues Objekt der gleichen Klasse wie die Verkapselungsschale 845. Bei diesem Fall wird das Objekt "NEUDOK" gefundera, es wird ein Objekt erzeugt, und es erscheint ein Ikon, das den Namen "NEUDOK" trägt, in dem "NewWave-Büro", wie es in Fig. 126 gezeigt ist und auf das durch den Cursor 781 gezeigt wird.
  • In Fig. 127 wurde das Objekt "PROBE" in einem Fenster 1103 geöffnet. Beim Sichern der Datei wurde ein Kasten 1122 in einem Fenster 1121 angekreuzt. Dies bewirkt, daß die Datei in dem MS-Word-Format gespeichert wird. Wie es in einer Region 1120 sichtbar ist, wird die Datei in dem Verzeichnis "C:/HPNWDOS/MSWORD" und nicht "C:/HPNWDOS/MSWRITE" gespeichert. Wie im vorhergehenden erörtert, können, wenn es durch die Konfigurationseigenschaften 847 spezifiziert ist, bei der Beendigungszeit andere Unterverzeichnisse innerhalb des Unterverzeichnisses 852, die andere verkapselte Klassen darstellen, nach Dateien abgesucht werden, die einen Zeitstempel aufweisen, der später liegt als die aufgezeichnete Startzeit der verkapselten Anwendung. Die Verkapselungsschale 845 kann dann Objekte der geeigneten Klasse für diese Dateien erzeugen. Den Objekten, die die neuen Dateien darstellen, sind neue Ikonen zugeordnet, wenn die Anwendung geschlossen wird.
  • Bei dem vorliegenden Fall werden die Verzeichnisse "C:/ HPNWDOS/MSWORD" (Unterverzeichnis 860) und "C:/HPNWDOS/ MSWRITE" (Unterverzeichnis 861) abgesucht, und es wird eine neue Kopie von PROBE im Verzeichnis "C:/HPNWDOS/MSWORD" gefunden. Ein neues Objekt für die Klasse für "MSWORD" wird erzeugt und ein Ikon mit dem Namen "PROBE" wird in dem Fenster für "NewWave-Büro" angezeigt, wie es in Fig. 128 gezeigt ist, und es wird auf dasselbe durch den Cursor 781 gezeigt. Die Form des Ikons zeigt, daß das neue Objekt "PROBE" der Objektklasse für "MS Word" und nicht für "MS Write" zugeordnet ist.
  • In Fig. 129 wird die Anweisung "Erzeugen neu" in dem lPull- Down-Menü 782 unter Verwendung des Cursors 781 ausgewählt. In Fig. 130 wird der Name "DEMODOK1" in die Region 1124 in dem Fenster 1112 eingetippt, und das Ikon "AdvanceWrite" wurde hervorgehoben. Das Resultat, das in Fig. 131 gezeigt ist, ist die Erzeugung eines Objekts "DEMODOK1", auf das durch den Cursor 781 gezeigt wird. In Fig. 132 ist gezeigt, daß "DEMODOK1" in dem Verzeichnis "C:/HPNWDOS/ADVWRITE" erscheint. Das Zeigen auf das Ikon "DEMODOK1" mit dem Cursor 781 und das Doppelklicken auf eine Taste der Maus 20, wie in Fig. 133 gezeigt, führt zu dem Öffnen von "AdvanceWrite" in Fig. 133.
  • In Fig. 134 ist die Anwendung "AdvanceWrite" gezeigt. Da "AdvanceWrite" kein Programm ist, das geschrieben wurde, um unter der "Windows"-Umgebung zu funktionieren, übernimmt "AdvanceWrite" den gesamten Bildschirm. In Fig. 135 wurde unter Verwendung der Tastatur Text zu dem Bildschirm, wie es in Fig. 134 gezeigt ist, hinzugefügt.
  • In Fig. 136 aktiviert das Drücken einer Taste "ALT" auf der Tastatur 19 die Menü/Makro-Einrichtung. Das Schalenfilter 844 zeigt beim Erkennen dieses Tastaturdrucks eine Titelleiste 1128 an, und es erscheint eine Menüleiste 126. Der Cursor 781 wird verwendet, um die Anweisung "Umwandeln in NewWave-Dokument" in einem Pull-Down-Menü 1124 auszuwählen. Beim Empfang der Auswahl überträgt das Schalenfilter 89 : 4 zu der Anwendung "AdvanceWrite" das zugeordnete Tastendruckmakro. Dieses Tastendruckmakro weist "AdvanceWrite" an, die aktuelle Datei in dem Format zu speichern, das zur Umwandlung innerhalb eines speziellen Umwandlungsunterverzeichnisses erforderlich ist, und dann weist dasselbe "AdvanceWrite" an, zu beenden. Das Schalenfilter 844 informiert die Verkapselungsschale 845, das die Anwendung "AdvanceWrite" endet. Abhängig von den Konfigurationseigenschaften sucht die Verkapselungsschale 845 das Umwandlungsunterverzeichnis nach jeglichen neuen Dateien ab. Die Verkapselungsschale 845 erzeugt ein Umwandlungsobjekt, das auf eine Umwandlungsanwendung Bezug nimmt, die in der Lage ist, die Umwandlung durchzuführen. Die Umwandlungsanwendung wird in den Konfigurationseigenschaften 874 identifiziert. Sobald das Umwand lungsobjekt erzeugt ist, sendet die Verkapselungsschale 845 die Identität der Datei, die umgewandelt werden soll, und eine Anweisung zu dem Umwandlungsobjekt, um die Umwandlung durchzuführen. Die umgewandelte Datendatei wird dann als Teil eines Objekts NewWave gespeichert, und die Zwischenumwandlungsdatei in dem Umwandlungsunterverzeichnis wird gelöscht.
  • Das Resultat ist eine Kopie von "DEMODOK1", die es in Fig. 137 gezeigt ist und auf die durch den Cursor 781 gezeigt wird. Die "DEMODOK1" ist ein NewWave-Dokument, und folglich kann dasselbe wie jedes andere Objekt auf dem System behandelt werden. Das Klicken auf den Titel der Kopie von "DEMO- DOK1" zeigt, daß kein Verzeichnis aufgelistet ist. Wie in Fig. 139 gezeigt, wurde der Name des Objekts zu "NW Demo Dokument" geändert, auf den durch den Cursor 781 gezeigt wird. Diese Namensänderung kann durchgeführt werden, da das Objekt ein NewWave-Dokument ist. In Fig. 140 wurde die: Namensleiste des Objekts "NW Demo Dokument" geschlossen.
  • Beispiele von Code, der die "Windows-ähnliche" Anweisungen implementiert, die zu Programmen hinzugefügt werden, die normalerweise nicht in einer "Windows"-Umgebung funktionieren, sind in Anhang G angegeben.
  • Fig. 141 ist ein Flußdiagramm, das den Prozeß zeigt, durch den die OMF 100 und die Verkapselungsschale 845 gehen, wenn ein Objekt gemäß dem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung geöffnet wird.
  • Bei einem Schritt 1140 versucht ein Benutzer ein Objekt zu öffnen. Bei einem Schritt 1144 prüft die Verkapselungsschale 845, ob das Objekt sich im DOS-Bezugsmodus befindet. Wenn dies der Fall ist, wird die Datei bei einem Schritt 1142 aktiviert. Wenn dies nicht der Fall ist, erscheint dem Benutzer ein Dialogkasten 1146, wobei der Benutzer gefragt wird, eine Datei zu benennen. Der Benutzer kann unter Verwendung des Cursors 781 die Transaktion abbrechen, und in einem Schritt 1148 kehrt die Verkapselungsschale 845 ohne etwas zu unternehmen zurück. Wenn der Benutzer einen Namen auswählt, prüft die Verkapselungsschale 845 in einem Schritt 1150, um zu sehen, ob der ausgewählte Name ein gültiger Dateiname ist. Wenn derselbe ein ungültiger Dateiname ist, wird der Benutzer unter Verwendung eines Dialogkastens 1152 informiert, und der Benutzer wird durch den Dialogkasten 1146 aufgefordert, einen anderen Dateinamen auszuwählen.
  • Wenn der Dateiname gültig ist, prüft die Verkapselungsschale 845, um zu sehen, ob die Dateispezifikation für die Datei existiert. Wenn die Dateispezifikation bei einem Schritt 1158 nicht existiert, bestimmt die Verkapselungsschale 845, ob die Dateispezifikation erzeugt werden kann. Wenn dies der Fall ist, wird die Dateispezifikation erzeugt, und die Verkapselungsschale 845 kehrt bei einem Schritt 1168 zurück. Wenn die Dateispezifikation nicht erzeugt werden kann, wird der Anwender über einen Dialogkasten 1156 dementsprechend informiert, und der Benutzer wird durch den Dialogkasten 1146 aufgefordert, einen anderen Dateinamen auszuwählen.
  • Wenn die Dateispezifikation existiert, bestimmt die Verkapselungsschale 845 bei einem Schritt 1154, ob der Dateiname in der gleichen Klasse registriert ist. Wenn dies der Fall ist, wird der Benutzer dementsprechend durch einen Dialogkasten 1164 informiert, und der Benutzer wird durch den Dialogkasten 1146 aufgefordert, einen anderen Dateinamen auszuwählen.
  • Wenn es keine Datei mit dem gleichen Namen gibt, die in der gleichen Klasse registriert ist, bestimmt die Verkapselungsschale 845 bei einem Schritt 1162, ob der Dateiname in einer anderen Klasse registriert ist. Wenn dies dar Fall ist, wird der Benutzer durch einen Dialogkasten 1160 dementsprechend informiert, und der Benutzer wird durch den Dialogkasten 1146 aufgefordert, einen anderen Dateinamen auszuwählen.
  • Wenn der Dateiname in einer anderen Klasse nicht registriert ist, bestimmt die Verkapselungsschale 845 bei einem Schritt 1172, ob eine Schlüsseldatei für die Datei existiert. Wenn dies nicht der Fall ist, wird der Benutzer durch einen Dialogkasten 1170 informiert, daß die Dateispezifikation durch andere Dateien verwendet wird, und der Benutzer wird durch den Dialogkasten 1146 aufgefordert, einen anderen Dateinamen auszuwählen. Wenn die Schlüsseldatei existiert, wird der Benutzer durch einen Dialogkasten 1174 informiert, daß die Datei schon existiert, und derselbe wird durch den Dialogkasten 1146 aufgefordert, einen anderen Dateinamen auszuwählen.
  • Fig. 142 zeigt die Schritte, die durch die Verkapselungsschale 845 vorgenommen werden, wenn die Datei bei dem Schritt 1142 aktiviert wird. Bei einem Schritt 880 wird das Verfahren, durch das das Objekt für die Datei geöffnet wurde, bestimmt. Wenn das normale Verfahren zum Öffnen der Datei verwendet wird -- z. B. durch Plazieren des Cursors 781 über dem Ikon für die Datei und Doppelklicken einer Taste an der Maus 20 -- dann wird eine standardmäßige Einstellung der Klasseneigenschaften bei einem Schritt 881 erhalten. Wenn ein alternatives Verfahren des Öffnens der Datei verwendet wird -- z. B. durch Plazieren des Cursors 781 über dem Ikon für die Datei, dem Herunterhalten der Taste "SHIFT" auf der Tastatur 19 und dem Drücken einer Taste an der Maus 20 -- dann wird ein alternativer Satz von Klasseneigenschaften bei einem Schritt 882 erhalten.
  • Bei einem Schritt 883 erhält die Verkapselungsschale 845 Objekteigenschaften für die Datei. Bei einem Schritt 884 bereitet die Verkapselungsschale 845 Menüs und Makros vor, die zu der Anwendung hinzugefügt werden sollen, und die durch das Schalenfilter 844 überwacht werden sollen. Das Schalenfilter weist unterschiedliche Mittel zum Überwachen einer Anwendung auf, die davon abhängen, ob die Anwendung geschrieben wurde, um in der "Windows"-Umgebung zu wirken. Daher bestimmt bei einem Schritt 885 die Verkapselungsschale 845, ob die geöffnete Anwendung eine "Windows"-Anwendung ist. Wenn dies der Fall ist, wird eine Liste von aktiven Fenstern bei einem Schritt 887 erhalten. Dies ist eine nützliche Information für das Schalenfilter 844, das, wenn dasselbe erzeugt ist, Nachrichten abfangen will, die zu einem neu geöffneten Fenster für die vorliegende Datei gerichtet sind. Wenn die geöffnete Anwendung keine "Windows"-Anwendung ist, wird eine Vorbereitung bei einem Schritt 886 für das Schalenfilter 844 vorgenommen, um Tastendrücke abzufangen.
  • Bei einem Schritt 888 färbt die Verkapselungsschale 845 das Ikon für die Datei grau, was einem Benutzer anzeigt, daß die Datei geöffnet wurde. Bei einem Schritt 889 wird die Anwendung für die Datei gestartet. Bei einem Schritt 890 verzweigt die Verkapselungsschale wiederum abhängig davon, ob die Anwendung für die Datei eine "Windows"-Anwendung ist. Wenn die Anwendung eine "Windows"-Anwendung ist, wird bei einem Schritt 892 das Schalenfilter 844 eingestellt, um Nachrichten abzufangen, die zu dem Fenster gesendet werden, das die "Windows"-Anwendung enthält. Wenn die Anwendung keine "Windows"-Anwendung ist, wird das Schalenfilter 844 bei einem Schritt 891 eingestellt, um Tastendrücke, die ein Benutzer auf der Tastatur 19 macht, und Benutzerhandlungen an der Maus 20 abzufangen.
  • Fig. 143 ist ein Flußdiagramm, das den Prozeß zeigt, durch den die OMF 100 und die Verkapselungsschale 845 gehen, wenn ein Objekt gemäß dem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung erzeugt wird.
  • Bei einem Schritt 1180 versucht ein Benutzer ein neues Objekt zu erzeugen. Ein Benutzer wird durch einen Dialogkasten aufgefordert zu bestätigen, ob derselbe eine neue Datei erzeugen möchte. Wenn der Benutzer die Bestätigung gibt, bestimmt die Verkapselungsschale 845 bei einem Schritt 1184, ob der Benutzer einen Dateinamen angezeigt hat. Wenn dies nicht der Fall ist, wird der Benutzer durch einen Dialogkasten 1186 aufgefordert, einen Dateinamen auszuwählen.
  • Bei dem Dialogkasten 1186 kann der Benutzer anfragen abzubrechen, was den Dialogkasten 1182 erscheinen läßt.
  • Sobald ein Name ausgewählt wurde, prüft die Verkapselungsschale 845 bei einem Schritt 1188, um zu sehen, ob der ausgewählte Name ein gültiger Dateiname ist. Wenn derselbe ein ungültiger Dateiname ist, wird der Benutzer unter Verwendung eines Dialogkastens 1190 informiert, und der Benutzer wird aufgefordert, einen anderen Dateinamen durch den Dialogkasten 1186 auszuwählen.
  • Wenn der Dateiname gültig ist, prüft die Verkapselungsschale 845, um zu sehen, ob eine Dateispezifikation für die Datei existiert. Wenn die Dateispezifikation nicht existiert, bestimmt die Verkapselungsschale 845 bei einem Schritt 1198, ob die Dateispezifikation erzeugt werden kann. Wenn dies der Fall ist, wird die Dateispezifikation erzeugt, und die Verkapselungsschale 845 kehrt bei einem Schritt 1202 zurück. Wenn die Dateispezifikation nicht erzeugt werden kann, wird der Benutzer dementsprechend durch einen Dialogkasten 1200 informiert, und der Benutzer wird durch den Dialogkasten 1186 aufgefordert, einen anderen Dateinamen auszuwählen.
  • Wenn die Dateispezifikation existiert, bestimmt die Verkapselungsschale 845 bei einem Schritt 1194, ob der Dateiname in der gleichen Klasse registriert ist. Wenn dies der Fall ist, wird der Benutzer dementsprechend durch einen Dialogkasten 1196 informiert, und der Benutzer wird durch Einen Dialogkasten 1196 aufgefordert, ob er ein Teilen der existierenden Datei erzeugen möchte. Wenn dies der Fall ist, wird ein Teilen in einem Schritt 1216 erzeugt. Wenn dies nicht der Fall ist, wird der Benutzer durch den Dialogkasten 1186 aufgefordert, einen anderen Dateinamen auszuwählen.
  • Wenn es keine Datei des gleichen Namens, der in der gleichen Klasse registriert ist, gibt, bestimmt die Verkapselungsschale 845 bei einem Schritt 1206, ob der Dateiname in einer anderen Klasse registriert ist. Wenn dies der Fall ist, wird der Benutzer durch einen Dialogkasten 1204 dementsprechend informiert, und der Benutzer wird durch den Dialogkasten 1204 aufgefordert, einen anderen Dateinamen auszuwählen.
  • Wenn der Dateiname nicht in einer anderen Klasse registriert ist, bestimmt die Verkapselungsschale 845 bei einem Schritt 1208, ob eine Schlüsseldatei für die existierende Datei existiert. Wenn dies nicht der Fall ist, wird der Benutzer durch einen Dialogkasten 1210 informiert, daß die Schlüsseldatei fehlt, daß jedoch andere Dateien vorhanden sind, und der Benutzer wird durch den Dialogkasten 1186 aufgefordert, einen anderen Dateinamen auszuwählen. Wenn die Schlüsseldatei existiert, wird der Benutzer durch einen Dialogkasten 1218 informiert, daß die Datei schon existiert, und der Benutzer wird aufgefordert zu bestätigen, daß diese existierenden Dateien registriert werden sollen. Wenn der Benutzer dies bestätigt, werden die Objekt- und Bezugs-Dateien in einem Schritt 1214 erzeugt. Andernfalls wird der Benuazer durch den Dialogkasten 1186 aufgefordert, einen anderen. Dateinamen auszuwählen.
  • Wenn die OMF 100 eine offene Nachricht zu einem Objekt sendet, umfaßt die offene Nachricht einen alternativen Klassenparameter, der spezifiziert, ob oder ob nicht die Taste Shift durch den Benutzer gedrückt wurde, als der Benutzer eine Anweisung Öffnen an die OMF 100 erzeugt hat, d. h. es wird ein spezieller Parameter gesendet, wenn ein Benutzer den Cursor 781 über ein Objekt plaziert, das geöffnet werden soll, die Taste, die mit "Shift" auf der Tastatur 19 markiert ist, gedrückt hält, während derselbe eine Taste an der Maus 20 doppelklickt. Die Verkapselungsschale 845 kann derart durch Parameter, die in den Konfigurationseigenschaften 847 gespeichert sind, konfiguriert werden, um eine andere alternative Anwendung als die verkapselte Anwendung 846 zu öffnen -- für diesen Fall ist die verkapselte Anwendung 846 die standardmäßige Anwendung -- wenn die Verkapselungsschale 845 von der OMF 100 einen alternativen Klassenparameter empfängt.
  • Die oben beschriebene Verwendung einer standardmäßigen Klasse und einer alternativen Klasse beim Öffnen eines Objekts kann verwendet werden, um es einem Benutzer zu ermöglichen, das Öffnen von zwei vollständig unterschiedlichen Anwendungsprogrammen zu spezifizieren, die beide den gleichen Datendateityp verarbeiten können. Alternativ kann die Verwendung einer standardmäßigen Klasse und einer alternativen Klasse verwendet werden, um die Verkapselungsschale abzufragen, so daß dieselbe die gleiche verkapselte Anwendung öffnet, jedoch mit anderen Parametern öffnet, die angeben, wie die Datendatei verwendet werden soll. Beispielsweise kann folglich ein Benutzer in der Lage sein zu spezifizieren, ob derselbe eine Datei bearbeiten oder durchstöbern möchte. Ähnlich kann ein Benutzer folglich in der Lage sein zu spezifizieren, ob derselbe ein Computerprogramm, das in einer Datendatei gespeichert ist, bearbeiten oder kompilieren möchte.
  • In Fig. 144 sind unterschiedliche Datensatztypen innerhalb der Datei HPOMF.DOS gezeigt. Ein Anfangsblockdatensatz 990 enthält eine Versionsnummer und andere Identifikationsinformationen. Es gibt lediglich einen Anfangsblockdatensatz in HPOMF.DOS. Derselbe ist 256 Byte lang.
  • Ein Verzeichnisdatenssatz 991 identifiziert ein Verzeichnis, das die verkapselten Datendatein enthält. Es gibt einen Verzeichnisdatensatz für jedes MS-DOS-Verzeichnis, das verkapselte Datendateien enthält. Der erste Verzeichnisdatensatz folgt unmittelbar nach dem Anfangsblockdatensatz 990.
  • Der Verzeichnisdatensatz 991 enthält drei Felder. Ein Feld 993 (IprecNextDir) enthält einen 32-Bit-Zeiger (der Versatz von dem Beginn der Datei in Bytes) des nächsten Verzeichnisdatensatzes in HPOMF.DOS. Dieses Feld ist auf Null in dem letzten Verzeichnisdatensatz eingestellt. Ein Feld 994 (IprecFile) ist ein 32-Bit-Zeiger (der Versatz von dem Beginn der Datei in Bytes) des ersten Dateidatensatzes für das Verzeichnis. Ein Feld 995 (szDirectory) enthält eine mit Null abgeschlossene Zeichenfolge, die der Verzeichnisname umfassend der Laufwerksspezifikation ist.
  • Ein Dateidatensatz 992 identifiziert eine verkapselte Datendatei. Es gibt einen Dateidatensatz für jede verkapselte Datendatei. Jeder Verzeichnisdatensatz zeigt zu dem ersten Dateidatensatz innerhalb dieses Verzeichnisses.
  • Der Dateidatensatz 992 enthält fünf Felder. Ein Feld 996 (IprecNextFile) ist ein 32-Bit-Zeiger (der Versatz von dem Beginn der Datei in Bytes) des nächsten Dateidatensatzes für dieses Verzeichnis. Wenn dies die letzte Datei in dem Verzeichnis ist, ist das Feld 996 Null.
  • Ein Feld 997 (bDeleted) ist ein boolescher 16-Bit-Wert, der anzeigt, ob die Datei anschließend gelöscht wurde. Das Feld 997 ist anfangs auf unwahr eingestellt, wenn der Dateidatensatz erzeugt wird. Wenn die Datei gelöscht wird, wird der Dateidatensatz an Ort und Stelle (aus Leistungsgründen) belassen, und das Feld 997 wird auf "Wahr" eingestellt, um anzuzeigen, daß der Eintrag nicht länger gültig ist. Ein Dateidatensatz, bei dem das Feld 997 auf "Wahr" eingestellt ist, kann für eine andere Datei wiederverwendet werden.
  • Ein Feld 998 (szFileName) enthält eine mit Null abgeschlossene Zeichenfolge, die der Wurzeldateiname (siehe Fig. 84B) des verkapselten Datendateisatzes ist.
  • Ein Feld 999 (dwObject) ist ein 32-Bit-Wert, der den New- Wave-Objekt-Identifizierer (Parameterbereichsname) des Objekts spezifiziert, das der verkapselten Datei zugeordnet ist.
  • Ein Feld 1000 (Flag) ist ein 8-Bit-Feld, das andere Statusinformationen enthält, die der verkapselten Datendatei zugeordnet sind.
  • Fig. 145 zeigt die logische Struktur der Datei HPOMF.DOS. Der Verzeichnisdatensatz 991 folgt dem Anfangsblockdatensatz 990. Der Verzeichnisdatensatz 991 enthält in dem Feld "IprecNextDir" einen Zeiger zu einem Verzeichnisdatensatz 1006. Der Verzeichnisdatensatz enthält in dem Feld "IprecNextDir" einen Zeiger zu dem Verzeichnisdatensatz 1009 usw.
  • Der Verzeichnisdatensatz 991 enthält ferner in dem Feld "IprecFile" einen Zeiger zu dem Dateidatensatz 992. Der Dateidatensatz 992 enthält in dem Feld "IprecNextFile" einen Zeiger zu dem Dateidatensatz 1004. Der Dateidatensatz 1004 enthält in dem Feld "IprecNextFile" einen Zeiger zu dem Dateidatensatz 1005. Ähnlich enthält der Verzeichnisdatensatz 1006 ferner in dem Feld "IprecFile" einen Zeiger zu dem Dateidatensatz 1007. Der Dateidatensatz 1007 enthält in dem Feld "IprecNextFile" einen Zeiger zu dem Dateidatensatz 1008.

Claims (8)

1. Ein Verkapselungssystem für ein Datenverarbeitungssystem, das eine Objektverwaltungseinrichtung (100) aufweist, die eine erste Mehrzahl von Objekten (201 - 205, 206-210) verwaltet, wobei jedes Objekt (201 - 205, 206-210) auf eine Anwendung (101) Bezug nimmt, die entworfen ist, um in Verbindung mit der Objektverwaltungseinrichtung (100) zu laufen, dadurch gekennzeichnet, daß das Verkapselungssystem (844-848) eine Einrichtung zum Erleichtern des Laufenlassens einer verkapselten, ersten Anwendung (846) in dem Datenverarbeitungssystem, die nicht entworfen ist, um in Verbindung mit der Objektverwaltungseinrichtung (100) zu laufen, aufweist, wobei das Verkapselungssystem (844 - 848) folgende Merkmale aufweist: eine Verkapselungsschale (845), die ein Datenmanipulationsprogramm ist, das wirksam ist, um den Betrieb der verkapselten, ersten Anwendung zu steuern, und die zwischen die erste Anwendung (846) und die Objektverwaltungseinrichtung (100) gekoppelt ist, um Anweisungen von der Objektverwaltungseinrichtung (100) für die erste Anwendung zu steuern, und das wirksam ist, um Betriebsanweisungen für die erste Anwendung auf der Basis von Anweisungen zu erzeugen, die von der Objektverwaltungseinrichtung empfangen werden, und ein Schalenfilter (844), das gekoppelt ist, um Anweisungen von der Verkapselungsschale (845) zu empfangen, und das mit einer oder mehreren Benutzereingaben (19, 20) gekoppelt ist, wobei das Schalenfilter eine Eingabeerfassungseinrichtung aufweist, die wirksam ist, um ansprechend auf Anweisungen von der Verkapselungsschale eine spezielle Eingabe oder Eingabefolge zu erfassen und abzufangen, und um als Ansprechen darauf die spezielle Eingabe oder Eingabefolge zu der Verkapselungsschale (845) weiterzuleiten.
2. Ein Verkapselungssystem (844-848) gemäß Anspruch 1, bei dem die erste Anwendung in einem Speicher derselben Daten von Konfigurationseigenschaften (847) gespeichert hat, die der Verkapselungsschale (845) Informationen über die Eigenschaften der ersten Anwendung (846) spezifizieren.
3. Ein Verkapselungssystem (844-848) gemäß Anspruch 1, das eine Menü/Makro-Definitionsdatei (848) aufweist, die durch die Verkapselungsschale (845) gelesen wird, wobei dieselbe Definitionen für Merkmale aufweist, die für die erste Anwendung (846) spezifisch sind, die durch die Verkapselungsschale (845) und das Schalenfilter (844) verwendet werden, und die dem Benutzer (843) gleichzeitig mit dem Laufenlassen der ersten Anwendung (846) durch das Datenverarbeitungssystem zur Verfügung gestellt werden.
4. Ein Verfahren zum Erleichtern des Laufenlassens eines Datenverarbeitungssystems, das eine Objektverwaltungseinrichtung (100) aufweist, die eine erste Mehrzahl von Objekten (201-205, 206-210), wobei jedes Objekt (201-205, 206-210) auf eine Anwendung (101) Bezug nimmt, die entworfen ist, um in Verbindung mit der Objektverwaltungseinrichtung (100) zu laufen, und eine erste Anwendung (846) verwaltet, die nicht entworfen ist, um in Verbindung mit der Objektverwaltungseinrichtung (100) zu laufen, wobei das Verfahren folgende Schritte aufweist: Verkapseln der ersten Anwendung (846) in einer Verkapselungsschale (845), die ein Datenmanipulationsprogramm ist, das wirksam ist, um den Betrieb der verkapselten, ersten Anwendung zu steuern, und die zwischen die erste Anwendung (846) und die Objektverwaltungseinrichtung (100) gekoppelt ist, um Anweisungen von der Objektverwaltungseinrichtung (100) für die erste Anwendung zu steuern; Erzeugen von Betriebsanweisungen in der Verkapselungsschale für die erste Anwendung auf der Basis von Anweisungen, die von der Objektverwaltungseinrichtung empfangen werden; Filtern der Anweisungen, die von der Verkapselungsschale (845) empfangen werden, mittels eines Schalenfilters (844), das mit einer oder mehreren Benutzereingaben (19, 20) gekoppelt ist, durch Erfassen und Abfangen einer speziellen Eingabe oder Eingabefolge ansprechend auf Anweisungen von der Verkapselungsschale und als Ansprechen darauf, Weiterleiten der speziellen Eingabe oder Eingabefolge zu der Verkapselungsschale (845).
5. Ein Verfahren gemäß Anspruch 4, bei dem der Schritt des Filterns Tastendrücke überwacht, die ein Benutzer (843) auf einer Tastatur (19) tippt.
6. Ein Verfahren gemäß Anspruch 4, bei dem der Schritt (b) durch Überwachen von Nachrichten durchgeführt wird, die zu der ersten Anwendung (846) gesendet werden.
7. Ein Verfahren gemäß Anspruch 4, bei dem der Schritt. (a) den folgenden Teilschritt aufweist:
(a1) Überlagern von zusätzlichen Menüs (1124), die einem Benutzer (843) als in der ersten Anwendung (846) integriert erscheinen, über die erste Anwendung (846).
8. Ein Verfahren gemäß Anspruch 7, das zusätzlich folgende Schritte aufweist:
(d) Abfangen von Benutzerbefehlen durch die Verkapselungsschale (845), die durch Benutzerhandlungen, die die zusätzlichen Menüs (1124) verwenden, erzeugt wurden;
(e) Erzeugen von Anweisungen durch die Verkapselungsschale (845), die, wenn dieselben durch die erste Anwendung (846) laufen gelassen werden, die Benutzeranweisungen durchführen werden, die durch die Benutzerhandlungen erzeugt wurden; und
(f) ansprechend auf das Abfangen von Benutzeranweisungen in Schritt (b), Senden von Anweisungen, die in Schritt (e) erzeugt wurden, von der Verkapselungsschale (845) zu der ersten Anwendung (846).
DE68928811T 1988-12-30 1989-12-20 Verkapselungssystem für ein Rechnersystem Expired - Fee Related DE68928811T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US29261088A 1988-12-30 1988-12-30

Publications (2)

Publication Number Publication Date
DE68928811D1 DE68928811D1 (de) 1998-10-15
DE68928811T2 true DE68928811T2 (de) 1999-01-28

Family

ID=23125418

Family Applications (2)

Application Number Title Priority Date Filing Date
DE68929341T Expired - Fee Related DE68929341T2 (de) 1988-12-30 1989-12-20 Verfahren zum Ausführen einer nicht für das Rechnersystem konzipierten Anwendung auf einem Rechnersystem
DE68928811T Expired - Fee Related DE68928811T2 (de) 1988-12-30 1989-12-20 Verkapselungssystem für ein Rechnersystem

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE68929341T Expired - Fee Related DE68929341T2 (de) 1988-12-30 1989-12-20 Verfahren zum Ausführen einer nicht für das Rechnersystem konzipierten Anwendung auf einem Rechnersystem

Country Status (8)

Country Link
US (1) US5832266A (de)
EP (3) EP0628904A3 (de)
JP (1) JPH02226357A (de)
KR (1) KR0142579B1 (de)
CN (1) CN1059981A (de)
AU (1) AU642606B2 (de)
CA (1) CA1331655C (de)
DE (2) DE68929341T2 (de)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2293470A (en) 1994-09-22 1996-03-27 Ibm Message encapsulation in Object Oriented Programming.
US5742826A (en) * 1994-11-09 1998-04-21 International Business Machines Corporation Object encapsulation protection apparatus
US6167455A (en) * 1995-05-05 2000-12-26 Apple Computer, Inc. Method and system for synchronous operation of linked command objects
US6782538B1 (en) * 1995-12-14 2004-08-24 International Business Machines Corporation Object oriented information handling system including an extensible instance manager
GB9606733D0 (en) 1996-03-29 1996-06-05 British Telecomm Collection of events within a distributed object system
US6100885A (en) * 1996-07-06 2000-08-08 International Business Machines Corporation Supporting modification of properties via a computer system's user interface
GB2315139A (en) * 1996-07-06 1998-01-21 Ibm Selecting operations in an object-oriented user interface
US6721950B1 (en) * 2000-04-06 2004-04-13 Microsoft Corporation Input redirection
US6964034B1 (en) 2000-04-20 2005-11-08 International Business Machines Corporation Application development server and a mechanism for providing different views into the same constructs within a strongly encapsulated environment
US6640317B1 (en) 2000-04-20 2003-10-28 International Business Machines Corporation Mechanism for automated generic application damage detection and repair in strongly encapsulated application
US7676785B2 (en) * 2004-02-13 2010-03-09 Microsoft Corporation Hosted application as a designer in an integrated development environment
US9021507B2 (en) * 2009-12-29 2015-04-28 International Business Machines Corporation Dynamic use of data across multiple programs
US10331620B2 (en) * 2015-11-24 2019-06-25 International Business Machines Corporation File generator
USD792463S1 (en) * 2015-12-23 2017-07-18 Samsung Electronics Co., Ltd. Display screen or portion thereof with icon
US11029802B2 (en) * 2018-02-27 2021-06-08 International Business Machines Corporation Automated command-line interface
CN111866254B (zh) * 2020-07-31 2021-08-31 广东佳米科技有限公司 一种智能识别划词的快速拨号系统及其实施方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4205371A (en) * 1975-11-03 1980-05-27 Honeywell Information Systems Inc. Data base conversion system
US4468732A (en) * 1975-12-31 1984-08-28 International Business Machines Corporation Automated logical file design system with reduced data base redundancy
US4631664A (en) * 1983-07-19 1986-12-23 Bachman Information Systems, Inc. Partnership data base management system and method
US4809219A (en) * 1985-06-26 1989-02-28 International Business Machines Corporation Method for processing an expert system rulebase on a system having limited memory
US4853842A (en) * 1985-09-11 1989-08-01 Texas Instruments Incorporated Computer memory system having persistent objects
JPS62173545A (ja) * 1986-01-27 1987-07-30 Hitachi Ltd デ−タデイクシヨナリ・デイレクトリの維持管理方式
CA1267229A (en) * 1986-03-10 1990-03-27 Randal H. Kerr Reconfigurable automatic tasking system
US4791561A (en) * 1987-04-17 1988-12-13 Wang Laboratories, Inc. Interactive construction of means for database maintenance
US4866634A (en) * 1987-08-10 1989-09-12 Syntelligence Data-driven, functional expert system shell
US4866635A (en) * 1987-10-19 1989-09-12 Carnegie Group Inc. Domain independent shell for building a diagnostic expert system
US4864497A (en) * 1988-04-13 1989-09-05 Digital Equipment Corporation Method of integrating software application programs using an attributive data model database

Also Published As

Publication number Publication date
AU2283992A (en) 1992-11-12
EP0628904A3 (en) 1994-12-28
EP0628907A3 (de) 1996-01-24
EP0628907A2 (de) 1994-12-14
DE68928811D1 (de) 1998-10-15
DE68929341T2 (de) 2002-05-02
KR900010588A (ko) 1990-07-09
DE68929341D1 (de) 2001-12-13
EP0628907B1 (de) 2001-11-07
EP0377299B1 (de) 1998-09-09
AU4548689A (en) 1990-07-05
CN1059981A (zh) 1992-04-01
JPH02226357A (ja) 1990-09-07
EP0628904A2 (de) 1994-12-14
AU624654B2 (en) 1992-06-18
AU642606B2 (en) 1993-10-21
KR0142579B1 (ko) 1998-08-17
EP0377299A3 (de) 1991-07-31
EP0377299A2 (de) 1990-07-11
CA1331655C (en) 1994-08-23
US5832266A (en) 1998-11-03

Similar Documents

Publication Publication Date Title
DE69715494T2 (de) Internetfähiges Portfolioverwaltungssystem, Verfahren und Programmprodukt
DE68928811T2 (de) Verkapselungssystem für ein Rechnersystem
DE69317443T2 (de) Dateienumsetzungssystem
DE69430421T2 (de) Verfahren und Gerät zur Automatisierung der Umgebungsanpassung von Rechnerprogrammen
DE60001931T2 (de) Verfahren und system für automatische übersetzung von konfigurierungseinstellungen zwischen rechnersystemen
DE69303289T2 (de) Steuersystem für anzeigemenüzustand
DE69131122T2 (de) Graphische Konfiguration eines Datenverarbeitungsnetzwerkes
DE60319229T2 (de) Verfahren und system zur erweiterung der api eines dateisystems
DE69428848T2 (de) Mehrsprachige Standardressourcen
DE69311359T2 (de) Befehlssystem
DE69636887T2 (de) System und Verfahren,um verschiedenen Anbietern von Namen zu ermöglichen,sich dynamisch einer Namensföderation anzuschliessen
DE69405408T2 (de) Objektorientiertes system und verfahren zur hardwarekonfiguration
DE68919503T2 (de) Methode und System zur Darstellung einer Benutzeroberfläche auf einem Computerbildschirm.
DE69535571T2 (de) Datenaustausch mit erweiterten Zwischenablage-Datenformaten
DE69400204T2 (de) Ladesystem
DE69310187T2 (de) Objektorientiertes fachwerksystem
DE69528738T2 (de) Systeme und Verfahren zur Herstellung und Auffrischung zusammengesetzter Dokumente
DE69724356T2 (de) Verfahren und Apparat für die Darstellung von Information im Bezug auf jeden einzelnen von mehreren Hyperlinks
DE69304928T2 (de) Atomares befehlsystem
DE69310214T2 (de) Dialogsystem
DE69609866T2 (de) Flexibles system und verfahren zum verknüpfen von hyperlinks
DE3856038T2 (de) Datenintegration durch Objektverwaltung
DE10135445A1 (de) Integriertes Verfahren für das Schaffen einer aktualisierbaren Netzabfrage
DE69400870T2 (de) Dynamisches verknüpfungssystem
DE10128883A1 (de) Verfahren und System für die Verteilung von Anwendungsdaten auf verteilte Datenbanken mit verschiedenen Formaten

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: HEWLETT-PACKARD CO. (N.D.GES.D.STAATES DELAWARE),

8327 Change in the person/name/address of the patent owner

Owner name: HEWLETT-PACKARD DEVELOPMENT CO., L.P., HOUSTON, TE

8339 Ceased/non-payment of the annual fee