DE69032348T2 - Objektbasiertes System - Google Patents

Objektbasiertes System

Info

Publication number
DE69032348T2
DE69032348T2 DE69032348T DE69032348T DE69032348T2 DE 69032348 T2 DE69032348 T2 DE 69032348T2 DE 69032348 T DE69032348 T DE 69032348T DE 69032348 T DE69032348 T DE 69032348T DE 69032348 T2 DE69032348 T2 DE 69032348T2
Authority
DE
Germany
Prior art keywords
objects
window
message
primary
container
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
DE69032348T
Other languages
English (en)
Other versions
DE69032348D1 (de
Inventor
Hugh Duggan
William Morel
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.)
HP Inc
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
Application granted granted Critical
Publication of DE69032348D1 publication Critical patent/DE69032348D1/de
Publication of DE69032348T2 publication Critical patent/DE69032348T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • G06F3/04817Interaction 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 using icons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/46Multiprogramming arrangements
    • G06F9/465Distributed object oriented systems

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)
  • Digital Computer Display Output (AREA)

Description

  • Die vorliegende Erfindung bezieht sich aufein Objekt-basiertes System und insbesondere, jedoch nicht ausschließlich, aufein verteiltes Objekt-basiertes System, auf das unter Verwendung einer Fensterschnittstelle zugegriffen werden kann.
  • Begriffsdefinitionen
  • Der Ausdruck "Objekt-basiertes System" wird verwendet, um aufein System zu verweisen, das mehrere Softwarekomponenten oder "Objekte" umfaßt.
  • Ein Softwareobjekt hat seine eigenen Daten und seine eigenen zugeordneten Verfahren. Objekte kommunizieren untereinander, indem "Nachrichten", d. h. Daten, Befehle, Anforderungen, usw., zu einem anderen gesendet werden, und zwar üblicherweise über eine Objektverwaltungssoftware. Ein Objekt ist zu Anfang eine Datei, die aufeiner Platte gespeichert ist. Wenn eine Objektverwaltungssoftware wünscht, eine Nachricht zu diesem zu leiten, wird ein Prozeß eingeleitet, welcher als Teil seiner Initialisierung die Datei liest. Wenn ein Objekt durch seine Plattendatei vollständig definiert ist und keinen demselben zugeordneten Prozeß hat, wird davon gesprochen, daß dasselbe "inaktiv" ist. Wenn einem Objekt ein Prozeß zugeordnet ist, und wenn dasselbe durch den Zustand dieses Prozesses definiert ist, dann wird davon gesprochen, daß dasselbe "aktiv" ist.
  • Im allgemeinen kann ein Objekt als eine diskrete Entität betrachtet werden, dasselbe kann beispielsweise bewegt, kopiert, zerstört, usw. werden.
  • In diesem Zusammenhang ist bei dem zu beschreibenden Ausführungsbeispiel ein Objekt etwas, welches einen eindeutigen Identifizierer hat, und dem eine Nachricht gesendet werden kann.
  • Der Ausdruck "Verbindung" oder "Link" kann bezüglich von Objekten in einem Objekt-basierten System mehrere Bedeutungen haben, wobei eine Einführung in bestimmte mögliche Bedeutungen folgt. Es wird in der spezifischen Beschreibung bezugnehmend auf die Zeichnungen näher auf "Behälterschaftverbindungen" oder "Containership Links", andere Zwischenobjektverbindungen und "Fensterverbindungen" oder "Window Links" eingegangen.
  • Wenn ein Objekt-basiertes System entwickelt wird, ist es als Optimierungsmerkmal möglich, ein hierarchisches Klassifikationssysten von Klassenobjekten zu definieren, bei denen Klassenobjekte, die in der Hierarchie (Unterklassen) niedriger angesiedelt sind, Charakteristika von ihren Überklassen "erben". Ein Beispiel für das Gebiet der Biologie ist in Fig. A gezeigt.
  • Das Klassenobjekt Tiere hat bestimmte Daten und zugeordnete Verfahren, welche für alle Tierobjekte allgemein gelten.
  • Seine Unterklassen, das Klassenobjekt Wirbeltiere und das Klassenobjekt wirbellose Tiere, erben die Charakteristika ihrer Überklasse Tiere, wobei jedes zusätzlich zusätzliche Daten und/oder Verfahren enthält, die für seine Klasse usw. entlang des Klassifikationsbaums spezifisch sind. Jede Verbindung in Fig. A ist eine "AKO"-Verbindung (AKO = A Kind Of = eine Art von), wobei beispielsweise ein Säugetier eine Art eines Wirbeltiers ist, und ein Primate eine Art eines Säugetiers ist.
  • Wenn es erwünscht ist, ein Beispiel einer Klasse zu erzeugen, z. B. ein spezielles Känguruh, das Hoppy genannt wird, kann dies durchgeführt werden, indem eine Kopie des Klassenobjekts Känguruh genommen wird, und indem die interessierenden Charakteristika von Hoppy spezifiziert werden, z. B. die Höhe, das Gewicht oder sonst etwas. Das Hoppy-Objekt hat eine "ISA"-Verbindung (ISA = Is A = ist eine) Verbindung mit dem Klassenobjekt Känguruh.
  • Ein solches System reduziert die Codemenge, welche nötig ist, um für neue Objekte geschrieben zu werden, da Objekte automatisch den allgemeinen Code der Überklassen (AKO-Verbindungen) und relevanten Klassenobjekten (ISA-Verbindungen) verwenden. Genauso wie ISA- und AKO-Verbindungen vorhanden sind, können auch andere Arten von Objektverbindungen vorhanden sein, die in einem System entworfen sind. Ein bekannter Typ einer Verbindung ist eine Behälterschaftverbindung (manchmal als "Elternschaft"- oder "Eignerschaft"-Verbindung) bezeichnet, welche allgemein die Position eines Objekts bestimmt, wobei Regeln vorhanden sein müssen, die bestimmen, was mit einem Objekt geschieht, wenn sein Behälter bewegt, kopiert, zerstört, usw. wird. Die vorliegende Anmeldung bezieht sich mehr auf solche weiteren Typen von Verbindungen als auf die grundsätzlichen AKO- und ISA-Verbindungen, die oben erwähnt wurden, welche in dem Systementwurf inhärent vorhanden sein können.
  • Bei dem zu beschreibenden Ausführungsbeispiel sind diese weiteren Verbindung bidirektional, d. h. beide betroffenen Objekte haben eine Aufzeichnung der Verbindung.
  • Noch ein weiterer Typ einer Verbindung ist der zwischen einem Objekt und einem Fenster, das das Objekt betrachtet, d. h. eine "Fenster-Verbindung".
  • Ferner können Fenster ebenfalls Objekte sein und Zwischen- Objekt-Verbindungen mit anderen Fenstern haben.
  • In dieser Beschreibung werden, wenn ein Verwechslungsrisiko zwischen Fensterobjekten und anderen Objekten möglich ist, die letzteren als "semantische Objekte" bezeichnet. Im allgemeinen bedeutet der Ausdruck "Objekt" jedoch auch "semantisches Objekt".
  • Bezüglich seiner Verwendung in dieser Anmeldung ist ein "semantisches Objekt" oder ein "semantischer Teil" eines Objekts ein Objekt oder ein Objektteil, welches bzw. welcher gespeicherte Daten hat und kraft der gespeicherten Daten weiterbesteht. Ein "Präsentationsobjekt" oder ein "Präsentationsteil" wird erzeugt, um einem Benutzer die Daten eines semantischen Objekts oder eines semantischen Objektteils zu präsentieren, wobei eine Präsentation in dem System nach dem Ende der Benutzersitzung nicht fortdauert bzw. weiterbesteht.
  • Der Ausdruck "Click" wird in dieser Beschreibung verwendet, um eine Auswahl zu bezeichnen, die von dem Benutzer unter Verwendung eines Eingabegeräts, wie z. B. einer Maus, durchgeführt wird.
  • Ein Speicherbereich kann als fast äquivalent zu einem Speichermedium, wie z. B. einer Festplatte oder einer Diskette, in dem Sinn betrachtet werden, daß alle Objekte in einem gegebenen Speicherbereich im Betrieb zusammen sind oder außerhalb des Betriebs zusammen sind.
  • Folglich kann eine einzige Maschine eine Vielzahl von Speicherbereichen unterstützen.
  • Stand der Technik
  • Die Europäische Patentanmeldung Nr. 0339221, die im Namen des vorliegenden Anmelders eingereicht wurde, bezieht sich aufein Objekt-basiertes Computersystem, das zur Verwendung durch einzelne Benutzer entworfen wurde. Objekte können durch Eltern-Kind-Verbindungen verbunden werden, wobei ein Kindobjekt mit mehr als einem Elternobjekt verbunden werden kann. In der EP 0339221 existiert nur eine Art einer Zwischenobjektverbindung. Eine Eltern-Kind-Verbindung kann verwendet werden, um entweder nur die Anzeige des gesamten oder eines Teils eines Kindobjekts in einem Fenster zu unterstützen, durch das ein Elternobjekt des Kindobjekts betrachtet wird, oder zusätzlich ebenfalls das Weiterleiten von Daten zu dem Elternobjekt, die sich auf Änderungen beziehen, die an dem Kindobjekt durchgeführt wurden.
  • Der Artikel von John A. Dysart, der ein Erfinder der EP 0339221 ist, mit dem Titel "The Newwave Object Management Facility", bezieht sich ebenfalls aufein System des in der EP 0339221 beschriebenen Typs.
  • Die Internationale Patentanmeldung Nr. WO 91/02307 wurde ebenfalls im Namen des vorliegenden Anmelders eingereicht und wurde nach dem Einreichen der vorliegenden Anmeldung veröffentlicht. Dieselbe bezieht sich aufein verteiltes Objekt-basiertes System, in dem Repräsentationsobjekte einen Abstraktionspegel beim Anzeigen von Objekten liefern.
  • Erfindung
  • Die vorliegende Erfindung betrifft hauptsächlich die Organisation eines Objekt-basierten Systems mit einer Mehrzahl von Benutzerstationen. Ein solches System kann durch eine einzige zentrale Verarbeitungseinheit mit einer Mehrzahl von Benutzerstationen, die mit derselben gekoppelt sind, geschaffen werden, oder dasselbe kann durch ein verteiltes Verarbeitungsnetz geschaffen werden, das aus einer Anzahl von unabhängigen Verarbeitungseinheiten besteht, von denen jede eine derselben zugeordneten Station hat. Die Erfindung betrifft jedoch auch ein Objekt-basiertes System mit einer Mehrzahl von Speicherbereichen, die aufeiner einzigen Station unterstützt werden.
  • Gemäß der vorliegenden Erfindung wird ein Objekt-basiertes Computersystem geschaffen, wie es in Anspruch 1 beansprucht ist.
  • In diesem Zusammenhang ist eine Verbindung ein Verweis auf ein anderes Objekt, welche bewirkt, daß unter bestimmten vordefinierten Umständen Nachrichten zu dem anderen Objekt gesendet werden.
  • Schwache Verbindungen zwischen Objekten in dem System können von unterschiedlichem Typ sein, d. h. sie können unterschiedliche Auswirkungen haben, und zwar gemäß den Verfahren der verbundenen Objekte und dem Wesen der Daten, die über die Verbindung gesendet wurden.
  • Auf vorteilhafte Art und Weise ermöglicht das Bereitstellen von Behälterschaftverbindungen zwischen Objekten in demselben Speicherbereich und eines zweiten Typs von Zwischenobjektverbindung, d. h. der schwachen Verbindung, zwischen Objekten in unterschiedlichen Speicherbereichen, daß Objektmanipulationsbefehle, wie z. B. Bewegen, Kopieren, usw., unzweideutig interpretiert werden, was den Bedarf nach einer Abfallsammlung überflüssig macht.
  • Es existiert eine Situation, bei der eine Behälterschaftverbindung zwischen zwei Objekten nicht garantiert, daß beide Objekte in demselben Speicherbereich sind, was während einer Operation Bewegen auftritt, welche beschrieben werden wird. Andernfalls kann angenommen werden, daß ein Objekt und sein Behälter in demselben Speicherbereich sind, wobei dieses Merkmal aus Leistungs-, Zuverlässigkeits-, Steuerungs- und Sicherungszwecken nützlich ist.
  • Vorzugsweise umfaßt das System Primärobjekte und Sekundärobjekte, wobei nur Primärobjekte in der Lage sind, andere Objekte zu enthalten.
  • Bei dem zu beschreibenden Ausführungsbeispiel existieren bestimmte Primärobjekte, welche keine anderen Objekte enthalten können, wie z. B. das Sichtbare-Daten-Objekt (VDO; VDO = Visible Data Object) und das Schachbrett.
  • Jedes Objekt hat nicht mehr als einen Behälter. Wenn ein Objekt zerstört wird, dann werden auch alle Objekte zerstört, die es enthält.
  • Bei dem zu beschreibenden Ausführungsbeispiel ist ein Primärobjekt in der Lage, mit einem Sekundärobjekt in demselben Speicherbereich durch eine Behälterschaftverbindung oder eine schwache Verbindung verbunden zu werden.
  • Die Existenz einer schwachen Verbindung zwischen einem Primärobjekt und einem Sekundärobjekt kann die Auswirkung haben, daß ein Benutzer, der das Sekundärobjekt auswählt, bewirkt, daß das Primärobjekt, mit dem dasselbe schwach verbunden ist, automatisch angezeigt wird. Dieses Merkmal erlaubt, daß eine Kette von Verbindungen aufgebaut wird, um das Erzeugen von Querverweisen zwischen Arbeitsgegenständen durch einen Benutzer und das Bereitstellen von spezialisierten Möglichkeiten für den Benutzer zu erleichtern. Beispiele werden nachfolgend bezugnehmend auf die Zeichnungen für jeden Fall gegeben.
  • Das System kann derart konfiguriert sein, daß ein Sekundärobjekt eine schwache Verbindung zu einem anderen Sekundärobjekt erhalten kann. Dieses Merkmal erlaubt eine größere Flexibilität für einen Benutzer, wie es ausgeführt werden wird.
  • Vorzugsweise umfaßt das System eine Einrichtung zum Speichern der Identität von Objekten, mit denen ein Objekt verbunden ist, zusammen mit einer Anzeige des Wesens jeder Verbindung aufeine verteilte Art und Weise. Alternativ (oder genausogut) können diese Informationen zentral für alle Objekte und nicht zu jedem einzelnen Objekt zugeordnet gespeichert werden.
  • Ein spezielles Ausführungsbeispiel der vorliegenden Erfindung wird nachfolgend beispielhaft bezugnehmend auf die beigefügten Zeichnungen beschrieben. Es zeigen:
  • Fig. 1 ein Diagramm, das die Softwarekomponenten eines systems zeigt;
  • Fig. 2 das System-Fenster;
  • Fig. 3 ein typisches Aufgaben-Fenster;
  • Fig. 4 ein Aufgaben-Fenster-Untersystem;
  • Fig. 5 ein Untersystem mit einer Bibliothek mit dynamischen Verbindungen;
  • Fig. 6 Verbindungen zwischen Objekten;
  • Fig. 7 eine schematische Darstellung von Verbindungen zwischen Objekten in einem einzigen Speicherbereich;
  • Fig. 8 die Verbindungsinformationen für die Objekte von Fig. 7;
  • Fig. 9 Nachrichtenübertragungen in dem System;
  • Fig. 9a die Informationen, die von einem Objektverwalter gehalten werden;
  • Fig. 10a eine Bewegen-Operation, die von einem Benutzer durchgeführt wird;
  • Fig. 10b die bei einer Bewegen-Operation betroffenen Objekte;
  • Fig. 11 ein Sekundärobjekt, das von einem Benutzer mit einem Primärobjekt verbunden wurde;
  • Fig. 12 eine von einem Benutzer durchgeführte Kopier-Operation;
  • Fig. 12b die in einer Kopier-Operation betroffenen Objekte; und
  • Fig. 13 bis 30 Bildschirmdarstellungen.
  • Das zu beschreibende Ausführungsbeispiel ist ein verteiltes, Objekt-basiertes Bürosystem, welches eine Benutzerschnittstelle des Graphikdirektmanipulationsstils hat. Das System liefert dem Benutzer aufeinem Desktop Objekte, und der Benutzer kann diese Objekte verändern, neu anordnen, neu erzeugen und Objekte zwischen Behältern auf seinem eigenen Desktop und den Desktops von anderen Benutzern bewegen.
  • Die Hauptkomponenten des Systems werden nachfolgend beschrieben.
  • Systemkomponenten
  • Bezugnehmend auf Fig. 1 sind die Softwarekomponenten eines verteilten Objekt-basierten Systems 10 gemäß der Erfindung gezeigt. Das System 10 kann auf über ein Netz verbundenen Personalcomputern laufen, von denen jeder mit einer Festplatte, einem Diskettenlaufwerk und einer Netzwerkkarte versehen ist.
  • Jeder PC ist mit den folgenden Softwarekomponenten geladen:
  • einer Betriebssystemsoftware 12, bei diesem Beispiel MSDOS;
  • einer Fensterschnittstellensoftware 14, bei diesem Beispiel Microsoft Windows;
  • einer Objektverwaltungssoftware (Object Manager) 16;
  • einer verteilte Nachrichtenumschaltungssoftware 18;
  • einer Lokalnetz-Netzwerksoftware 20;
  • einer Fenster-Software 22, in diesem Fall MS-Windows-Anwendungen;
  • einer Software 24 für semantische Objekte.
  • Der OM 16 (OM = Object Manager = Objektverwalter) steuert das Senden und Empfangen von Nachrichten durch Objekte und hält einen Katalog von Objekten, welche in der Maschine vorhanden sind. Zusätzlich aktiviert der OM 16 ein inaktives Objekt, wenn eine Nachricht für dasselbe empfangen wird, und derselbe deaktiviert Objekte, wenn der Systemspeicher knapp wird. Der OM 16 arbeitet ebenfalls als Bibliothek, um einfache Hilfsfunktionen für Objekte und andere Prozesse zu liefern. Bei diesem Ausführungsbeispiel ist der OM 16 eine MS-Windows-Anwendung, obwohl derselbe kein Fenster hat und daher nicht betrachtet werden kann.
  • Die verteilte Nachrichtenumschaltungssoftware (Distributed Message Switch (DMS)) 18 ist ein residentes Programm, das nach seiner Beendigung zurückbleibt, und das als Nachrichtenweiterleitungseinrichtung wirkt, die von dem OM 16 verwendet wird, um Nachrichten zu den korrekten Zielen zu senden. Die DMS 18 wird Nachrichten zu einem lokalen oder einem entfernten OM leiten, je nachdem was erwünscht ist.
  • Bei diesem Ausführungsbeispiel umfaßt die Lokalnetz-Netzwerksoftware 20 zwei residente Programme, die nach ihrer Beendigung zurückbleiben, und zwar eines gemäß dem Standard IEEE 802.3, während das andere Dienste nach LEE 802.2 Klassen I und III liefert.
  • Die Fenstersoftware 22 umfaßt eine Systemfensteranwendung (System Window) und Fensteranwendungen zum Anzeigen von Fensterobjekten (Task Windows). Die System Window ist ein Prozeß, welcher eine Benutzersitzung steuert.
  • Die Objektsoftware 24 umfaßt die semantischen Objekte des Systems 10. Jedes der Objekte ist ein Satz von Daten, der mit einer von MS-Windows ausführbaren Datei verknüpft ist. Ein Objekt kann aktiv oder inaktiv sein, wie es oben definiert wurde. Jedes Objekt in dem gesamten verteilten System hat seinen eigenen eindeutigen Identifizierer. Jeder Objektidentifizierer hat einen Teil, der anzeigt, in welchem Speicherbereich das Objekt erzeugt wurde, und einen Teil, der innerhalb dieses Speicherbereichs eindeutig ist. Dieser Identifizierer verändert sich nicht, wenn das Objekt anschließend zu einem unterschiedlichen Speicherbereich bewegt wird. Die Objekte in dem System 10 sind beweglich und können durch irgendeinen Benutzer unabhängig davon, wo der Benutzer und die Objekte physisch gesehen positioniert sind, bewegt, kopiert, und auf andere Art und Weise manipuliert werden. Eine derartige Manipulation wird aufeine Art und Weise erreicht, welche für alle Objekttypen gleichartig oder konsistent ist. In anderen Worten ist das Netzwerk für einen Benutzer des Systems transparent.
  • Ein Objekt oder ein Teil eines Objekts kann durch eine Mehrzahl von Task Windows oder "Aufgabenfenstern" (die zu einem oder mehreren Benutzern gehören) gleichzeitig betrachtet werden, und dasselbe wird in jedem Task Window dieselbe Erscheinung haben.
  • Bei diesem Ausführungsbeispiel existieren zwei Typen eines semantischen Objekts, und zwar Primärobjekte und Sekundärobjekte. Alle Objekte mit Ausnahme des Desktop haben einen Behälter.
  • Im allgemeinen können Primärobjekte andere semantische Objekte enthalten, und dieselben können durch Task Windows getrennt von ihren Behältern betrachtet werden. Es existieren jedoch bestimmte Primärobjekte, welche keine anderen Objekte enthalten können, z. B. das Schachbrett- und das Sichtbare- Daten-Objekt (VDO; VDO = Visible Data Object). Bestimmte Primärobjekte können ebenfalls primitive Informationen, d. h. Daten, z. B. Text, Bilder, usw., enthalten.
  • Primärobjekte haben ein Icon, welches aus einem kleinen Bild besteht, das das Primärobjekt darstellt, und einen Titel. Das Icon, oder die miniaturisierte Version des Primärobjekts ist zu sehen, wenn der Behälter des Primärobjekts betrachtet wird. Icons können verwendet werden, um das zugeordnete Pnmärobjekt zu bewegen oder zu kopieren, wobei ein Doppel- Klicken aufein Icon bewirkt, daß das Task Window, in dem das Icon zu sehen war, nun das Primärobjekt zur Ansicht bringt.
  • Beispiele von Primärobjekten sind ein Ordner, ein Dokument, ein Sichtbare-Daten-Objekt (VDO). Das VDO wirkt als Speicher für Daten, und seine Abmessung wird von dem Benutzer eingestellt. Die Struktur eines VDO kann durch den Benutzer betrachtet werden, wobei die tatsächlichen Daten, die in dem VDO gespeichert sind, nicht direkt betrachtet werden können. Bei diesem Ausführungsbeispiel können Sekundärobjekte keine anderen Objekte enthalten. Sie können nur als Teil ihres Behälterobjekts betrachtet werden, sie haben keine miniatunsierten (ikonischen) Zustände. Sie werden verwendet, um ihren Behälter zu ergänzen, indem sie eine Anmerkung oder eine komplexere Darstellung liefern, wie es erklärt werden wird.
  • Die Objekttypen werden nachfolgend detaillierter beschrieben, wobei erstens Fensterobjekte und zweitens semantische Objekte dargestellt werden.
  • Fensterobjekte
  • Fensterobjekte haben ebenfalls die Grundmerkmale von Daten und zugeordneten Verfahren zusammen mit einem eindeutigen Identifizierer und der Fähigkeit, Nachrichten von anderen Objekten zu empfangen und darauf zu antworten. Sie unterscheiden sich jedoch von semantischen Objekten darin, daß sie transient sind, d. h. nicht aufeiner Platte gespeichert sind, wohingegen semantische Objekte derart sind, daß sie weiterbestehen, selbst wenn die relevante Maschine ausgeschaltet wird. Fensterobjekte erhalten ihre Daten aus dem Systemfenster und dem semantischen Objekt, das sie betrachten, und nicht von einer Platte.
  • Es existieren drei Typen von Fensterobjekten, nämlich das Systemfenster, das Aufgabenfenster und das Sekundärfenster. Jedes Fensterobjekt hat seinen eigenen eindeutigen Objektidentifizierer. Dieser Identifizierer hat ein Element, das den Speicherbereich identifiziert, auf dem das Fenster erzeugt wurde, und ein Element, welches innerhalb dieses Speicherbereichs eindeutig ist.
  • Das Systemfenster wird automatisch durch den OM 16 gestartet und bleibt im Speicher, während das System 10 läuft, und steuert die Erzeugung, Zerstörung, Öffnung und Schließung von Aufgabenfenstern. Das Systemfenster handhabt ebenfalls einen Benutzer, der sich in das System 10 anmeldet oder aus demselben abmeldet. Fig. 2 zeigt das Systemfenster 30, welches den gesamten Bildschirm bedeckt und als Hintergrund wirkt, sobald sich ein Benutzer in das System angemeldet hat. Es existiert ein "Aktivitäten"-Menübalken 31 oben an dem Systemfenster. Das Systemfenster 30 gibt dem Benutzer einfach die Option, in das System (NOVA) einzutreten oder heraus zugehen.
  • Jeder Benutzer hat bis zu sieben Aufgabenfenster zu seiner Verfügung. Der Benutzer kann die Größe und Position eines Aufgabenfensters steuern sowie wählen, welches Objekt das Aufgabenfenster betrachten soll. Fig. 3 zeigt ein typisches Aufgabenfenster 32. Der Titel 33 des Aufgabenfensters 32 zeigt den Name (Desktop) des Objekts, welches das Aufgabenfenster 32 betrachtet, und den Name der Maschine (RS/20), auf dem das Objekt sitzt. Das Aufgabenfenster 32 hat einen Menübalken 34, welcher ein "GEHE ZU"-Herunterziehmenü hat, und welcher weitere Herunterziehmenüs haben kann, und zwar abhängig von dem Typ des betrachteten Objekts. Bei dem Beispiel von Fig. 3 zählt das Desktop-Objekt offensichtlich drei Objekte, d. h. Kollegen, Angebote und Papierkorb.
  • Ein Aufgabenfenster kann entweder sichtbar (offen) oder unsichtbar (geschlossen) sein. Das Systemfenster 30 steuert das Öffnen und Schließen von Aufgabenfenstern, wobei der Benutzer ein Aufgabenfenster schließen kann, indem er den "Systernkasten" 35 desselben mit einem Doppelklick versieht. Auf diese Art und Weise kann ein Benutzer mehrere Aufgaben im Hintergrund laufen lassen, und schnell zwischen denselben hin- und herschalten.
  • Ein Aufgabenfenster kann nur ein Primärobjekt zu einem Zeitpunkt betrachten. Durch Klicken aufein Icon oder einen Knopf (siehe Abschnitt "Semantikobjekte") kann das Aufgabenfenster umgeschaltet werden, um ein anderes Objekt zu betrachten.
  • Jeder Benutzer hat bis zu sieben Aufgabenfenster zu seiner Verfügung. Der Benutzer kann bis zu sieben Primärobjekte zur gleichen Zeit betrachten, indem er die erwünschte Anzahl von Aufgabenfenstern erzeugt und diese zu ausgewählten Objekten navigiert.
  • Das Systemfenster speichert Daten für jedes Aufgabenfenster, das es steuert, nämlich:
  • a) eine Aufgabenfenster Objekt-ID
  • b) eine Aufgabenhandhabung (einen internen Identifizierer, der für die Fenstersoftware 22 verwendet wird)
  • c) eine Grenzenfarbe
  • d) eine Offen/Geschlossen-Flag
  • e) eine Fenster-Icon-Aufleucht-Flag
  • f) eine Objekt-ID des durch das Aufgabenfenster betrachteten Objekts;
  • g) das Icon und den Titel des betrachteten Objekts
  • Um ein Aufgabenfenster 32 zu erzeugen, wählt ein Benutzer den Gegenstand "Erzeugen" aus dem Menü "Aktivitäten". Das Systemfenster 30 aktualisiert seine internen Fensterinformationen und sendet eine Nachricht Fenster Erzeugen zu dem nächsten Aufgabenfenster 32, das die obigen Informationen enthält.
  • Das Systemfenster 30 sperrt die gesamte Benutzereingabe, bevor diese Nachricht gesendet wird, und reaktiviert dieselbe beim Empfangen einer Antwortnachricht Fenster Erzeugen Pertig von dem neuen Aufgabenfenster.
  • Es existiert ein Aufgabenfensteruntersystem, welches alle Operationen handhabt, die einen Teil der Beobachtungsvorrichtung bilden, wie z. B. Bewegen und Dimensionieren des Fensters, Schließen des Fensters, Verändern des betrachteten Objekts, usw. Operationen, die für das zu betrachtende Objekt spezifisch sind, werden durch eine Bibliothek mit dynamischen Verbindungen (Dynamic Link Libary) gehandhabt, die für diese Objektklasse geeignet ist. Die Bibliothek mit dynamischen Verbindungen wird wieder entladen, wenn das Aufgabenfenster nicht länger dieses Objekt betrachtet.
  • Jedes Aufgabenfenster speichert die Objekt-ID des Primärobjekts, das dasselbe betrachtet, und Informationen darüber, welcher Teil dieses Objekts betrachtet wird. Das Aufgabenfenster speichert ebenfalls den Name der relevanten Bibliothek mit dynamischen Verbindungen für das Objekt, das betrachtet wird.
  • Es kann mehr als ein Aufgabenfenster vorhanden sein, das ein Objekt zu einem Zeitpunkt betrachtet, derart, daß bei einem verteilten System eine Mehrzahl von Benutzern dasselbe Objekt gleichzeitig betrachten kann.
  • Fig. 4 zeigt ein Aufgabenfenster-Untersystem 36, das ein Hauptprogramm 37 zum Aktivieren von Aufgabenfenstern und eine Unterstützungsbibliothek 38 umfaßt. Das Untersystem 36 ist mit einer eines Satzes von Bibliotheken 39 mit dynamischen Verbindungen für unterschiedliche Klassen von Objekten verbunden. Der Satz 39 umfaßt beispielsweise Bibliotheken mit dynamischen Verbindungen für VDO-, Ordner- und Schachbrett-Primärobjekte, die als 39a, b bzw. c bezeichnet sind.
  • Die Bibliothek mit dynamischen Verbindungen 39 speichert Informationen zwischen, die das Neuzeichnen des relevanten Präsentationsobjekts ermöglichen, oder einen Teil desselben, wenn es zutreffend ist, ohne daß eine Kommunikation mit dem semantischen Objekt nötig ist. Während des Betriebs sendet das Aufgabenfenster allgemein Informationen zu dem Aufgabenfenster-Untersystem 36, und es sendet Informationen, die für das spezielle Präsentationsobjekt spezifisch sind, zu der relevanten Bibliothek 39 mit dynamischen Verbindungen.
  • Ein Aufgabenfenster 32 kann einen beliebigen Typ eines semantischen Objekts anzeigen, und es ist ein Primärfenster dahingehend, daß es mit jedem Primärobjekttyp, z. B. Ornder, VDO, usw., verbunden werden kann. Wenn das Primärobjekt, das ein Aufgabenfenster betrachtet, ein Sekundärobjekt, z. B. ein Balkendiagramm, enthält, erzeugt das Aufgabenfenster ein Sekundärfenster und verbindet dasselbe mit dem Sekundärobjekt, wie es beschrieben werden wird. Diese Sekundärfenster werden automatisch erzeugt, wenn ein Benutzer einen Behälter von einem oder mehreren Sekundärobjekten betrachtet, und dieselben werden ebenfalls automatisch zerstört, wenn der Benutzer das Aufgabenfenster von dem Behälter bewegt.
  • Aufgabenfenster sind mit semantischen Objekten durch eine Operation Gehe Zu verbunden. Dies wird oft eine Opertion Gehe Weg betreffen.
  • Der erste Schritt der Operation Gehe Zu besteht für das Aufgabenfenster darin, eine Nachricht Füge Betrachter Hinzu zu dem erwünschten Objekt zu senden. Dieses Objekt wird die Aufgabenfenster-ID speichern und mit einer Nachricht Hier Inhalt antworten.
  • Der erste Teil der Nachricht Hier Inhalt liefert Informationen über die Objekt-ID, die Klasse, das Icon und die relevante Bibliothek 39 mit dynamischen Verbindungen. Dies bewirkt, daß das Untersystem 36 die relevante Bibliothek 39 mit dynamischen Verbindungen lädt. Der Rest der Nachricht Hier Inhalt ist für das Objekt Privat und wird zu der Bibliothek 39 mit dynamischen Verbindungen geleitet.
  • Wenn das zu betrachtende Objekt irgendwelche Sekundärobjekte enthält, erzeugt das Aufgabenfenster ein Sekundärfenster für jedes Sekundärobjekt. Ein Sekundärfenster ist ein Kindfenster, das verwendet wird, um ein Sekundärobjekt anzuzeigen und mit demselben zu interagieren, und zwar auf der Oberfläche des Primärobjekts, welches dasselbe enthält. Sekundärfenster unterscheiden sich von Aufgabenfenstern darin, daß sie erzeugt werden, um ein Objekt zu erzeugen, und daß sie zerstört werden, wenn diese Ansicht nicht länger benötigt wird, währenddessen Aufgabenfenster verwendet werden, um viele Objekte in Folge zu betrachten.
  • Wenn eine Bibliothek 39 mit dynamischen Verbindungen für ein Primärobjekt zu Anfang eine Nachricht Hier Inhalt empfängt, wird dieselbe eine Liste von enthaltenen Sekundärobjekten umfassen. Bezugnehmend auf Fig. 5 verwendet die Bibliothek 39 mit dynamischen Verbindungen eine Unterstützungsbibliothek 40, um dieselbe mit Hilfsfunktionen zu versehen, die das Erzeugen und Registrieren von Sekundärfenstern für irgendwelche enthaltenen Sekundärobjekte umfassen. Die Unterstützungsbibliothek 40 speichert die ID der enthaltenen Sekundärobjekte und ihre Position in dem Primärobjekt.
  • Eine Nachricht Betrachter Hinzufügen wird zu jedem derartigen Sekundärobjekt gesendet. Daraufhin wird jedes derartige Sekund-rfenster seine eigene Nachricht Hier Inhalt, die den Namen der Bibliothek 41 mit dynamischen Verbindungen für das Sekundärobjekt enthält, empfangen, damit dieselbe sie verwenden kann. Diese Bibliothek mit dynamischen Verbindungen für das Sekundärobjekt wird dann geladen, und alle Nachrichten für das Sekundärfenster werden zu einer Fensterprozedur in der Bibliothek 41 mit dynamischen Verbindungen für das Sekundärobjekt geleitet.
  • Die Operation Gehe Weg wird gestartet, indem das Aufgabenfenster eine Nachricht Betrachter Entfernen zu dem betrachteten Objekt sendet. Wenn das Aufgabenfenster Sekundärfenster erzeugt hat, wird diese Nachricht ebenfalls zu diesen übermittelt, was bewirkt, daß sie sich selbst zerstören. Alle Objekte, die die Nachricht Betrachter Entfernen empfangen, aktualisieren ihre Liste von Fenstern und antworten mit einer Nachricht Betrachter Entfernt. Das Aufgabenfenster weiß, wie viele Antworten zu erwarten sind, wobei die Operation Gehe Weg vollendet ist, wenn diese empfangen worden sind. Das Aufgabenfenster kann dann ein weiteres Objekt betrachten oder sich selbst schließen oder zerstören.
  • Um ein Aufgabenfenster zu zerstören, wählt der Benutzer den Gegenstand Zerstören von dem Menü Aktivitäten 31. Die Maus kann dann bewegt und irgendwo auf dem Bildschirm geklickt werden, wobei alle anderen Benutzereingaben vorübergehend gesperrt sind. Wenn die Maus über einem Aufgabenfenster geklickt wird, sendet das Systernfenster eine Nachricht Fenster Zerstören zu diesem Aufgabenfenster, welches mit einer Nachricht Fensterzerstörung Fertig antwortet. Die Nachricht Fenster Zerstören bewirkt, daß das Aufgabenfenster eine Operation Gehe Weg einleitet, wie es oben beschrieben wurde.
  • Fig. 6 stellt die Verbindungen zwischen semantischen Objekten und zwischen Fensterobjekten sowie Fensterkommunikationsverbindungen (gestrichelt gezeigt) zwischen Fenstern und den Objekten dar, welche dieselben betrachten. Behälterverbindungen zwischen Systemobjekten sind als C (C = Containership Links = Behälterschaftberbindungen) markiert, während schwache Verbindungen zwischen Primär- und Sekundärobjekten mit W (W = Weak Links = Schwache Verbindungen) markiert sind. Fensterkommunikationsverbindungen und Verbindungen zwischen Fenstern sind transient und veschwinden, wenn die Maschine des Benutzers ausgeschaltet ist, während die Verbindungen zwischen Systemobjekten weiter bestehen.
  • In Fig. 6 sind drei Aufgabenfenster gezeigt, die das Desktop, den Ordner und bzw. das Dokument betrachten. Das Aufgabenfenster, das das Dokument betrachtet, hat zwei Sekundärfenster, die das Balkendiagramm und das Kuchendiagramm betrachten, welche schwache (Aktualisierungs-) Verbindungen zu dem VDO haben. Kein Fenster betrachtet das VDO direkt.
  • Die Daten in einem Sichtbare-Daten-Objekt (VDO; VDO = Visible Data Object) sind nicht direkt betrachtbar, wobei jedoch die Struktur der Daten betrachtbar ist. Icons, die enthaltene Primärobjekte darstellen, sind als Kästen in den Aufgabenfenstern gezeigt. Statt des Öffnens von neuen Aufgabenfenstern ist es möglich, das Desktop, den Ordner und das Dokument aufeinanderfolgend mit einem einzigen Aufgabenfenster zu betrachten, indem auf die relevanten Icons geklickt wird.
  • Semantikobjekte
  • Wie es oben erwähnt wurde, existieren in dem System 10 Primär- und Sekundärobjekte.
  • In dem System 10 existieren zwei unterschiedliche Typen von Objektverbindungen: Behälter-Verbindungen und schwache Verbindungen. Die Behälter-Verbindung besteht im wesentlichen, wo ein Objekt physisch positioniert werden soll, wie es vorher erwähnt wurde, und dieselbe kann nur zwischen zwei Pnmärobjekten vorhanden sein, die in dem gleichen Speicherbereich positioniert sind, oder zwischen einem Primärobjekt und einem Sekundärobjekt, die in dem gleichen Speicherbereich positioniert sind.
  • Ein Objekt kann nur von einem anderen Objekt enthalten sein, weshalb dasselbe zerstört sein wird, wenn sein Behälter zerstört ist.
  • Schwache Verbindungen existieren gegenwärtig zwischen einem Primärobjekt und einem Sekundärobjekt. Schwache Verbindungen können zwischen Objekten errichtet werden, die in unterschiedlichen Speicherbereichen positioniert sind, und dieselben beeinflussen nicht das Enthalten eines Objekts.
  • Es existieren zwei Haupttypen für ein Sekundärobjekt: der Knopf und die Darstellung.
  • Ein Knopf selbst hat zwei mögliche Funktionen: zuerst kann er einen Text oder eine Graphikanmerkung für seinen Behälter liefern, und zweitens kann er einen Übergang zu dem Primärobjekt erlauben, mit dem er verbunden ist. Eine Darstellung kann mit einem Teil eines VDO (Visible Data Object = Sichtbare-Daten-Objekt) verbunden sein, und dieselbe wird die Informationen darstellen, die von diesem Teil des VDO gehalten werden, und zwar in einer Form, die von dem Wesen der Darstellung abhängt, z. B. ein Kuchendiagramm, ein Balkendiagramm oder eine Tabelle. Änderungen, die an den Daten in dem VDO durchgeführt werden, werden in den Darstellung wiedergegeben, die mit dem VDO verbunden sind, wobei die Daten, die von dem VDO gehalten werden, geändert werden können, indem die Daten geändert werden, die von einer Darstellung gezeigt werden, die mit dem VDO verbunden ist.
  • Weitere Details der Verbindung zwischen einem VDO und Darstellungsobjekten sind in der ebenfalls anhängigen internationalen Patentanmeldung Nr. WO 91/02307 offenbart, die die Priorität der UK-Patentanmeldung Nr. 8917490.8 beansprucht.
  • Fig. 7 zeigt schematisch einen Satz von möglichen Verbindungen zwischen Objekten in einem einzigen Speicherbereich 42. Jeder Benutzer hat ein Desktop-Objekt: das Desktop 44 enthält alle anderen Objekte in dem Speicherbereich 42. Das Desktop 44 ist das einzige Objekt, welches keinen Behälter hat, und es kann nicht bewegt, kopiert oder zerstört werden.
  • Fig. 7 zeigt das Desktop 44, das zwei Ordner-Objekte ent hält: Ordner A und Ordner B, wie es durch (Doppellinien-) Behälterverbindungen gezeigt ist. Der Ordner A enthält ein Dokumentobjekt: Dokument A. Der Ordner B enthält ein sichtbares Datenobjekt: VDO B, welches (durch eine einzige Linie dargestellte) schwache Verbindungen zu Repräsentationsobjekten hat: ein Balkendiagramm und eine Tabelle. Der Ordner B enthält ferner ein Primärobjekt, Dokument B, welches das Tabellendarstellungsobjekt und das Balkendiagrammdarstellungsobj ekt enthält.
  • Jedes Objekt speichert Informationen, die die Objekte identifizieren, mit denen dasselbe verbunden ist, und das Wesen der Verbindungen. Fig. 8 zeigt bestimmte Informationen, die bezüglich jedes Objekts, das in Fig. 7 gezeigt ist, gespeichert sind.
  • Zusätzlich speichert jedes Primärobjekt die Position der Objekte, die dasselbe enthält. Enthaltene Objekte speichern keine Informationen bezüglich ihrer Position in dem Objekt, das sie enthält. Primärobjekte speichern ebenfalls Daten zwischen, die ihr Icon definieren. Bezüglich schwacher Verbindungen speichert das Sekundärobjekt Informationen darüber, mit welchem Teil des Primärobjekts dasselbe verbunden ist, wohingegen das Primärobjekt keine derartigen Verbindungspositions informationen speichert.
  • Sekundärobjekte können keine anderen Objekte enthalten. Es existieren bestimmte Begrenzungen bezüglich der Behältereigenschaften von Primärobjekten: Dokumentobjekte können nur Sekundärobjekte enthalten, während bestimmte Primärobjekte, z. B. Schachbrett, VDO, keine anderen Objekte enthalten können.
  • Unterschiedliche schwache Verbindungen können unterschiedliche Auswirkungen abhängig von den Verfahren der verbundenen Objekte und dem Wesen der Daten, die über die Verbindung gesendet werden, haben. Eine schwache Verbindung zwischen einem Knopf und einem Primärobjekt kann beispielsweise eine Transversalverbindung sein, die eingestellt ist, derart, daß, wenn der Benutzer auf den Knopf klickt, das Aufgabenfenster, das das Primärobjekt betrachtet, das den Knopf enthält, umschaltet, um das Primärobjekt zu betrachten, das mit dem Knopf schwach verbunden ist. Dagegen kann eine schwache Verbindung zwischen einem VDO und einem Darstellungsobjekt eine Zwei-Wege-Aktualisierungsverbindung sein, derart, daß Änderungen in dem VDO in dem Repräsentationsobjekt wiedergegeben werden und umgekehrt. Es ist ebenfalls möglich, einen Transversaltyp einer schwachen Verbindung zwischen einem VDO und einem Repräsentations- oder Darstellungsobjekt zu haben, derart, daß das Klicken auf das Darstellungsobjekt das Übergehen zu dem VDO bewirkt.
  • Es ist ebenfalls möglich, eine schwache Verbindung zwischen zwei Sekundärobjekten zu haben, um eine "Transversalkette" einzurichten. Zum Beispiel das Verbinden eines ersten Knopf 5 im Ordner A mit einem zweiten Knopf im Ordner B, wobei der zweite Knopf mit dem Ordner C verbunden ist. Das Klicken auf den ersten Knopf wird bewirken, daß das Aufgabenfenster, das den Ordner A betrachtet, auf den Ordner C umschaltet. Dieses Merkmal ermöglicht eine komplexere Querverweisung zwischen Benut z ergegenständen.
  • Gemäß der vorliegenden Erfindung kann eine schwache Verbindung ebenfalls ein indirektes Einfügen eines Objekts und eines anderen Gegenstandes in ein Zielobjekt ermöglichen, wie es weiter hinten in dem Abschnitt mit dem Titel "Verbindungen" erläutert wird.
  • Objekt-Nachrichtenübermittlung
  • Objekte kommunizieren untereinander durch Senden von Nachrichten zueinander. Alle Nachrichten werden durch den Objektverwalter (OM), der in dem Objekt lokal vorhanden ist, das die Nachricht sendet, geleitet. Fig. 9 zeigt zwei Speicherbereiche SD1 und SD2 (SD = Storage Domain = Speicherbereich) in einem Netz. In jedem Speicherbereich befindet sich ein OM und eine Transportsteuerung TC (TC = Transport Controller) (der die DMS 18 und die Lokalbereichsnetzverwaltungssoftware 20 von Fig. 1 enthält) zum Senden und Empfangen von Nachrichten über das Netz. Semantikobjekte (A, B, C, usw.) haben jeweils ihre eigene Nachrichtenschlange Q (Q = Queue) für einlaufende und auslaufende Nachrichten. Jeder OM hat ebenfalls eine Nachrichtenschlange QOM und eine Tabelle T, die Informationen über Objekte in diesem Speicherbereich enthält.
  • Bezugnehmend auf Fig. 9A zeichnet die Tabelle T jedes OM den allgemeinen Objekttyp auf, d. h. sei es ein Fensterobjekt oder ein Semantikobjekt, und den spezifischen Objekttyp, wie z. B. Ordner, Knopf, usw. Die Tabelle T speichert ferner die Objekt-IDS und die Flags F&sub1;, F&sub2; und F&sub3;, die jeweils anzeigen, ob ein Semantikobjekt aktiv ist, und ob es gerade geschlossen wird (d. h. bereits eine Nachricht Aufhören aufgelegt wurde) oder ob es sich gerade abmeldet (d. h. gerade eine Nachricht Abmelden aufgelegt wurde).
  • Jeder OM hat ebenfalls einen Zwischenspeicher C, der die Objekt-IDS und gegenwärtige Positionen von Objekten enthält, zu denen in jüngster Zeit Nachrichten gesendet wurden.
  • Auslaufende Nachrichten werden von den Nachrichtenschlangen der Objekte A, B, C in dem Speicherbereich ST1 zu der Nachrichtenschlange QOM von OM1 gesendet. Das Ziel einer Nachricht ist in jeder Nachricht als eine Objekt-ID spezifiziert. Jede Objekt-ID umfaßt einen Teil, der den Speicherbereich identifiziert, in dem dieses Objekt erzeugt wurde, und einen Teil, welcher in diesem Speicherbereich eindeutig ist.
  • Beim Empfangen einer Nachricht überprüft der OM1 eine Tabelle T, um zu sehen, ob das Ziel der Nachricht in seinem eigenen Speicherbereich SD 1 ist. Wenn dies so ist, sendet der OM1 die Nachricht zu der Nachrichtenschlange Q dieses Zielobjekts. Wenn das Zielobjekt nicht lokal ist, es sei z. B. angenommen, daß das Ziel das Objekt E in dem Speicherbereich SD2 ist, überprüft der OM1 seinen Zwischenspeicher C1. Wenn das Zielobjekt nicht in dem Zwischenspeicher C1 (C = Cache) aufgelistet ist, übermittelt der OM rundfunkmäßig eine Suchnachricht auf das Netz, und zwar über die Transportsteuerung TC1, in der das Zielobjekt identifiziert ist. Als Reaktion suchen alle OMs in dem Netz ihre Tabellen durch, wobei der, der das Zielobjekt in seiner Tabelle enthält, antwortet. Die Nachricht wird dann über das Netz von OM1 zu OM2 in dem Speicherbereich SD2 (in diesem Fall) über die Transportsteuerungen TC1 und TC2 gesendet. Die Nachricht wird dann von der Nachrichtenschlange QOM2 von OM2 zu der Nachrichtenschlange Q des Zielobjekts E gesendet.
  • Wenn ein Zielobjekt bewegt wird, während eine Nachricht zu demselben gesendet wird, beginnt das Verfahren des Auflegens nocheinmal
  • Eine Nachricht kann mehr als ein Zielobjekt spezifizieren, wobei in diesem Fall jedes der Zielobjekte in der obigen Art und Weise positioniert ist, und wobei die Nachricht zu allen disponiert wird.
  • Der Adressierungmechanismus für eine Nachricht hängt davon ab, ob das Ziel ein Semantikobjekt, ein Aufgabenfenster oder ein Sekundärfenster ist. Alle Nachrichten, die von einem Semantikobjekt empfangen worden sind, sind für dieses Objekt. Nachrichten, die von einem Fensterobjekt empfangen worden sind, können für dieses Fensterobjekt, oder für ein Sekundärfenster dieses Aufgabenfensters sein. Nachrichten enthalten einen Anzeiger, der darauf bezogen ist, ob dieselben für ein Semantikobjekt oder für ein Fensterobjekt sind.
  • Bestimmte Nachrichten können eine spezielle Bedeutung haben, da diese kennzeichnen, daß ein Objekt gerade zu einem anderen Speicherbereich bewegt wird, oder gerade geschlossen wird. Solche Nachrichten sind in Fig. 9 eingeschwärzt gezeigt und werden später aufgegriffen, wenn die Operationen Abmelden und Zerstören beschrieben werden.
  • Wie semantische Objekte manipuliert werden können, und die Auswirkung des Enthaltens und von schwache Verbindungen zwischen semantischen Objekten werden nachfolgend beschrieben.
  • Objektmanipulationen
  • Systemobjekte können erzeugt, zerstört, bewegt, kopiert, verbunden und getrennt werden. Diese und weitere Objektmanipulationen werden nachfolgend detaillierter beschrieben.
  • Die Nachrichten, die bei jeder Manipulation betroffen sind, sind in Anhang A gezeigt. Parameter, die in einer Nachricht enthalten sind, sind in Klammern nach dem Name der Nachricht gezeigt.
  • Erzeugen
  • Ein Benutzer, der sich in dem System 10 zum ersten Mal anmeldet (oder einloggt) erfaßt ein Desktop (Fig. 3), welches bestimmte Objekte enthält, einen Papierkorb, einen Ordner Kollegen und einen Schrank Angebote. Der Schrank Angebote enthält Vorlagen für jeden möglichen Typ von Semantikobjekten, wobei die Vorlagen kopiert werden können, jedoch nicht aus dem Schrank Angebote entfernt werden können. Eine Kopie eines Vorlagenobjekts in ein übliches Objekt, welches bewegt, kopiert, zerstört, usw. werden kann.
  • Um ein neues Objekt zu erzeugen, sendet ein existierendes Primärobjekt eine Nachricht Kopieren zu dem Schrank Angebote, die die Identität des existierenden Objekts und die Unterklasse des zu erzeugenden Objekts enthält. Dies bewirkt, daß eine Kopie der relevanten Vorlage in dem Schrank Angebote gemacht wird, wobei das neue Objekt eine Nachricht Kopie Fertig zu seinem Behälter zusammen mit seinem Objektidentifizierer, welchen dasselbe von dem OM 16 enthält, sendet. Das neue Objekt wird in die Aufzeichnungen des OM 16 und in die Aufzeichnungen seines Behälterobjekts eingetragen. Der Desktop ist ein Spezialfall. Da er keinen Behälter hat, sendet er seine Nachricht Kopieren Fertig stattdessen zu dem Systemfenster. Die Kopieroperation ist später detaillierter beschrieben.
  • Zerstören
  • Wenn ein Benutzer wünscht, eine Sitzung zu beenden, sendet das Systemfenster eine Nachricht Räumen zu dem Papierkorb. Als Reaktion sendet der Papierkorb Nachrichten Selbst Zerstören zu den Objekten, die derselbe enthält, und die Objekte antworten mit einer Nachrichten Zerstören Fertig. Wenn der Papierkorb Nachrichten Zerstören Fertig von allen Objekten empfangen hat, welche derselbe enthält, sendet der Papierkorb eine Nachricht Räumen Vollendet zu dem Systemfenster.
  • Im allgemeinen führt beim Empfang einer Nachricht Selbst Zerstören ein Objekt (Objekt 1 in Anhang A) zwei Dinge durch, bevor es abgemeldet ist:
  • i) es verteilt eine Nachricht Verbindung Lösen zu allen Objekten, mit denen dasselbe schwach verbunden ist. Wenn Objekt 1 ein Primärobjekt ist, kann es mit einem oder mehreren Sekundärobjekten schwach verbunden sein, und es sendet eine Nachricht Hoch Auf Niedrig Verbindung Lösen zu diesen Sekundärobjekten. Wenn Objekt 1 ein Sekundärobjekt ist, kann es nur schwach verbunden mit einem Primärobjekt sein, und es sendet eine Nachricht Niedrig Auf Hoch Verbindung Lösen. Es existiert keine Antwort auf die Nachricht Verbindung Lösen;
  • ii) wenn dasselbe ein Primärobjekt ist, zerstört es alle Objekte (Objekt 2 in Anhang A), welches es enthält, indem es jedem derselben eine Nachricht Selbst Zerstören sendet, und aufeine Antwort Zerstören Fertig wartet.
  • Sobald die oben genannten Handlungen 1) und 2) fertig sind, sendet das Objekt eine Anforderung nach einer Abmeldung zu dem OM, und die Abmeldung wird durchgeführt, wie es nachfolgend beschrieben ist. Kurz vor dem Beenden sendet das Objekt eine Nachricht Zerstören Fertig zu seinem Elternobjekt.
  • Anmelden/Abmelden
  • Ein Objekt existiert nur in dem System, wenn es bei dem OM 16 des Speicherbereichs angemeldet oder registriert ist, in dem es positioniert ist. Neu hinzugewanderte Objekte werden durch ihre Behälterobjekte angemeldet. Sobald sie angemeldet sind, wird ein Objekt dies bleiben, bis es zerstört wird, oder bis es zu einem anderen Speicherbereich bewegt wird.
  • Das Abmelden tritt auf, wenn ein Objekt zerstört wird oder zu einer anderen Maschine bewegt wird. Das Abmeldungsverfahren betrifft das Objekt, das eine Anforderung nach einer Abmeldung (eine Nachricht, die in Fig. 9 geschwärzt ist, um sie von den anderen gezeigten Nachrichten zu unterscheiden), sendet, wonach der OM sich weigern wird, irgendwelche weiteren Nachrichten für dieses Objekt anzunehmen, wobei derselbe eine Nachricht Abgemeldet an dem Ende der Schlange von Nachrichten für dieses Objekt legen wird. Wenn die früheren Nachrichten in der Nachrichtenschlange gesendet worden sind, wird die Nachrichtet Abgemeldet zu dem Objekt gesendet. Der Eintrag für das Objekt in der Tabelle T des OM wird dann gelöscht. Wenn das Objekt die Nachricht Abgemeldet empfängt, wird es geschlossen.
  • Aktivieren
  • Semantikobjekte sind entweder aktiv oder inaktiv. Ein Objekt ist aktiv, wenn es eine demselben zugewiesene Aufgabe hatte, wobei sein Zustand in diesem Fall in einem RAM gespeichert ist, und dasselbe kann den Prozessor seiner Hostmaschine verwenden. Wenn es inaktiv ist, existiert ein Objekt nur als Plattendatei.
  • Beim Empfangen einer Nachricht für ein aktives Objekt leitet der OM die Nachricht zu Aufgabe (d. h. Verfahren), die dem Objekt zugeordnet ist. Beim Empfangen einer Nachricht für ein inaktives Objekt muß das Objekt aktiviert werden, was Prozeduraufrufe mit sich bringt. Der OM erzeugt einen Prozeß für das Objekt unter Verwendung einer Prozedur, um ein Beispiel des korrekten Typs des Objekts zu starten. Dieser Prozeß tut zwei Dinge, zuerst ruft er die Prozedur (Aufgabe) OM Aktivieren auf, um den OM zu informieren, auf welche Schlange er die ankommende Nachricht senden soll. Die Aufgabe ruft ebenfalls eine Prozedur Erhalten Meiner Objekt-ID in dem OM auf, welche die Objekt-ID zurückgibt. Die Aufgabe liest dann den Zustand des Objekts in den RAM. Das Objekt ist nun aktiv.
  • Deaktivieren
  • Das Deaktivieren von Objekten geschieht auf zwei Arten und Weisen und bringt ebenfalls Prozeduraufrufe mit sich. Das Objekt kann seine eigene Deaktivierung anfordern, indem es eine Prozedur Deaktivieren Anfordern in dem OM aufruft, wonach der OM dem Objekt eine Nachricht Aufhören sendet. Alternativ kann der OM einem Objekt eine Nachricht Aufhören senden, um die Anzahl von aktiven Objekten aufeiner Maschine gemäß den verfügbaren Ressourcen zu steuern. Ein Objekt, das eine Nachricht Aufhören empfängt, speichert seinen Zustand auf der Platte, ruft eine Prozedur Deaktivieren Bestätigen in dem OM auf und hört mit seinem Prozeß auf.
  • Bewegen
  • Der Komplexitätsgrad der Operation des Bewegens eines Objekts hängt davon ab, ob das Objekt Kinder hat, und von seiner Zielposition. Fig. loa stellt die Handlung eines Benutzers dar, der ein Ordnerobjekt M von einem Quellenfenster (SW) aufeiner ersten Maschine (M/C 1) zu einem Zielfenster (TW) aufeiner zweiten Maschine (M/C 2) bewegt. Fig. 10b stellt die bei der Bewegenoperation betroffenen Objekte, nämlich das Quellenfenster (SW), das Zielfenster (TW), ein Quellenobjekt (S), ein Zielobjekt (T), das Bewegungsobjekt (M) und Kindobjekte C&sub1; und C&sub2; des Bewegungsobjekts M dar.
  • Die Bewegenoperation beginnt, wenn ein Benutzer ein Icon, das ein Primärobjekt darstellt, oder ein Sekundärobjekt von einem Fenster zu einem anderen, beispielsweise durch Ziehen dieser Gegenstände über den Bildschirm unter Verwendung einer Maus, bewegt. Die Gültigkeit des Versuchs, eine Nachricht zu senden, die eine Bewegenoperation einleitet, und zwar zu dem Zielobjekt, wird von dem Präsentationssystem überprüft, wobei das Zielobjekt entscheidet, ob eine solche Bewegung annehmbar ist, und wobei die Operation abgebrochen wird, wenn die versuchte Bewegung nicht nötig ist, beispielsweise wenn der Benutzer versucht, ein Objekt zu bewegen, welches nicht bewegt werden kann, wie z. B. das Objekt Angebotsschrank.
  • Das Quellenfenster SW erhält von dem Zielfenster TW die Objekt-ID des Zielobjekts und die Position innerhalb des Zielobjekts, zu dem das Bewegungsobjekt M bewegt werden soll.
  • Das Quellenfenster SW sendet eine Nachricht Objekt Bewegen zu dem Quellenobjekt S. Wenn das Quellenobjekt S und das Zielobjekt T tatsächlich dasselbe Objekt sind, hat der Benutzer einfach die Position des Bewegungsobjekts M innerhalb seines gegenwärtigen Behälters eingestellt, wobei das Quellenfenster S seine Tabellen aktualisiert und seine Fenster informiert, indem eine Nachricht Lokal Bewegen gesendet wird. Alle Fenster, die diese Nachricht empfangen, aktualisieren ihre Tabellen und zeichnen das Bewegungsobjekt M neu.
  • Wenn S ungleich T ist, wird ein Verriegeln auf der relevanten Maschine eingestellt, um potentielle Probleme zu vermeiden, die durch die Verschachtelung von zwei oder mehreren Bewegen/Kopieren-Operationen bewirkt werden können, derart, daß keine Bewegen/Kopieren-Operationen mehr eingeleitet werden können, bis die gegenwärtige Operation vollendet ist. Dies wird durchgeführt, indem S eine Nachricht Bewegen Kopieren Verriegeln zu dem OM 16 sendet. Wenn dieser Aufruffehlschlägt, muß die Bewegenoperation abgebrochen werden, und S sendet eine Nachricht Kann Nicht Bewegen zu dem SW, was eine Warnnachricht bewirkt, die dem Benutzer angezeigt wird. Wenn der Aufruf Erfolg hat, sendet S eine Nachricht Selbst Bewegen zu M. Wenn M ein Objekt ist, das nicht bewegt werden darf, sendet dasselbe eine Nachricht Will Nicht Bewegen zu S, was bewirkt, daß dem Benutzer in dem SW eine Warnnachricht angezeigt wird.
  • Wenn M bewegt werden kann, sendet dasselbe eine Nachricht Objekt Entfernen zu S. Dies bewirkt, daß S M von seinen Objekttabellen entfernt, und die Nachricht Objekt Entfernen zu allen Fenstern sendet, die S betrachten. Diese Fenster entfernen dann M aus ihren Tabellen und werden neu gezeichnet.
  • Wenn M bereits auf derselben Maschine wie T ist, ist die Bewegenoperation relativ einfach. M sendet eine Nachricht Lokal Einfügen zu T, was bewirkt, daß T M in seine Objekttabellen einfügt und Nachrichten Einfügen zu den Fenstern sendet, die T betrachten, wodurch M gezeichnet wird. M sendet dann eine Nachricht Neue Eltern zu allen seinen Betrachtern, um dieselben von der Änderung der Behälterschaft zu informieren, und M sendet eine Nachricht Bewegen Vollendet zu S. S löst dann ein Lösen von Bewegen Kopieren Verriegeln aus.
  • Wenn M und T auf unterschiedlichen Maschinen sind, muß M abgemeldet werden, derart, daß der OM 16 auf seiner gegenwärtigen Maschine aufhört, Nachrichten für dasselbe anzunehmen. Wenn M jedoch Kinder hat, muß es in der Lage sein, Nachrichten Bewegen Vollendet von seinen Kindern zu überwachen, weshalb sich M unter Verwendung einer neuen Objekt- ID neu anmeldet. M sendet dann eine Nachricht Einfügen zu T, die eine serialisierte Form von M hat, was es T ermöglicht, die Daten für M auf die Platte zu schreiben, um M auf der neuen Maschine anzumelden.
  • An diesem Punkt existieren zwei Kopien von M: die ursprüngliche (altes M), welche nun eine neue Objekt-ID hat, und die bewegte (neues M), welche die korrekte Objekt-ID für M verwendet. Die alte M steuert die Bewegenoperation.
  • T fügt dann das neue M in seine Tabellen ein und sendet Nachrichten Einfügen (neues M) zu seinen Betrachtern, was bewirkt, daß die Fenster entsprechend neu gezeichnet werden.
  • Das alte M sendet dann eine Nachricht neue Knotenaufforderung zu dem neuen M, um dasselbe aufzufordern, seinen Zustand zu aktualisieren, und seine Betrachter von seiner neuen Position zu informieren. Das alte M sendet ebenfalls eine Nachricht Neue Eltern zu allen Betrachtern des neuen M.
  • Wenn M keine Kinder hat, sendet es nun eine Nachricht Bewegen Vollendet zu S und meldet sich selbst ab und zerstört sich selbst.
  • Wenn M Kinder hat, sendet dasselbe eine Nachricht Selbst Senden zu einem seiner Kinder C. C überprüft, um zu sehen, ob es bereits auf derselben Maschine wie das neue M ist. Wenn dies so ist, antwortet dasselbe mit einer Nachricht Bewegen Vollendet. Andernfalls meldet es sich ab. Wenn es abgemeldet ist, sendet C eine Nachricht Mich Registrieren, die eine serialisierte Form von C enthält, zu dem neuen M, was bewirkt, daß das neue M die Daten von C auf die Platte schreibt und C auf seiner Maschine anmeldet.
  • Wenn C selber Kinder hat, sendet dasselbe eine Nachricht Selbst Senden zu einem derselben und wartet auf die Antwort Bewegen Vollendet. Es sei angemerkt, daß, wenn C selbst Kinder hat, dasselbe durch das Verfahren des Abmeldens und Neuanmeldens unter einer neuen Objekt-ID gehen muß, wie es oben bezugnehmend auf M beschrieben wurde, derart, daß zwei Objekte, Alt C und Neu C, für eine bestimmte Zeitdauer existieren. Das Objekt Alt C sendet eines seiner Kinder eine Nachricht Selbst Senden und wartet auf die Antwort Bewegen Vollendet. Dies ist eine rekursive Operation, und schließlich wird das alte C alle seine Kinder bewegt haben. Dasselbe sendet dann eine Nachricht Bewegen Vollendet zu dem alten M und zerstört sich selbst. Das alte M löscht dann C aus seiner Liste von Kindern und sendet eine Nachricht Selbst Senden zu einem anderen Kind. Wenn das alte M alle seine Kinder bewegt hat, sendet dasselbe eine Nachricht Bewegen Vollendet zu S und zerstört sich selbst. Es löst dann ein Lösen von Bewegen Kopieren Verriegeln aus, wonach die Operation vollendet ist.
  • Sobald somit ein Objekt zu einem anderen Speicherbereich bewegt worden ist, erhält dasselbe neue Eltern in dem neuen Speicherbereich. Das Kind- (und weitere Nachkommen-) Objekte des bewegten Objekts werden mit ihrem Elternteil oder Vorfahr bewegt.
  • Wie es vorher erwähnt wurde, verletzt die Bewegenoperation die Konvention, daß ein Objekt und sein Behälter in demselben Speicherbereich sind, da das Behälterobjekt bewegt wird, bevor die Objekte bewegt werden, die es enthält.
  • Ein alternativer Lösungsansatz würde darin bestehen, ein Objekt zusammen mit allen Objekten, die es enthält, zu transferieren, d. h. alle diese Objekte wären gleichzeitig außer Betrieb. Dieser Lösungsansatz hat jedoch praktische Nachteile.
  • Verbinden
  • Der Benutzer ist in der Lage, ein Sekundärobjekt (S in Anhang A) mit einem Primärobjekt (P in Anhang A) im Laufe einer Benutzersitzung zu verbinden. Fig. 11 zeigt einen Bildschirm mit einer Ansicht eines Teils eines Ordners 60, der ein Sichtbare-Daten-Objekt (VDO) 62 (ein Primärobjekt) und ein Balkendiagramm (ein Sekundärobjekt) enthält.
  • Jedes Sekundärobjekt hat eine Grenze 66, die erscheint, wenn das Eingabegerät, z. B. Maus, Cursor, über demselben positioniert wird. Die Grenze hat einen Verbindungskasten 68, einen Trennungskasten 70 und zwei Größenkästen 72 und 74. Das Balkendiagramm 64 wird mit dem VDO 62 verbunden, indem die Maus über dem Verbindungskasten 68 geklickt wird, und die Maus zu dem VDO gezogen wird, und die Maus dann losgelassen wird. Dies bewirkt, daß eine "Kette" 76 auf dem Bildschirm erscheint.
  • Beim Loslassen der Maus fordert das Sekundärfenster (SW), das das Balkendiagramm 64 betrachtet, das Aufgabenfenster (TW), das das VDO 62 betrachtet, auf, mitzuteilen, ob das VDO eine Verbindung von einem Balkendiagramm annehmen wird. Eine negative Antwort würde bewirken, daß die Operation abgebrochen wird. In diesem Fall ist die Verbindung jedoch annehmbar, und es wird eine Nachricht Verbinden (Zielobjekte) von dem Sekundärfenster zu dem Balkendiagramrn gesendet. Wenn das Balkendiagramm 66 bereits verbunden ist, sendet es eine Nachricht Trennen zu dem Objekt (0), mit dem es gegen wärtig verbunden ist. Das Balkendiagramm 64 aktualisiert dann seine Verbindungsdaten und sendet eine Nachricht Verbinden zu dem VDO. Das VDO aktualisiert dann seine Verbindungsdaten, um das Balkendiagramm aufzunehmen.
  • In dem speziellen Fall, in dem ein VDO mit einem Repräsentationsobjekt verbunden wird, muß die Verbindung ein spezifischer Teil der VDO sein. Daher sendet das Balkendiagramm 64 eine Nachricht VDO Informationen Erhalten zu dem VDO 62. Dies bewirkt, daß das VDO eine Beschreibung von sich selbst zu dem Balkendiagramm sendet. Das Senkundärfenster SW zeigt dann einen Dialog an, um es dem Benutzer zu ermöglichen, den Teil des VDO auszuwählen, mit dem das Balkendiagramm verbunden werden soll.
  • Die Auswirkung der Verbindung des Balkendiagrarnms 64 mit dem VDO 62 besteht darin, daß beliebige Änderungen in dem relevanten Teil des VDO automatisch in dem Balkendiagramm wiedergegeben werden. Ferner können die Daten in dem VDO verändert werden, indem Änderungen an dem Balkendiagramm durchgeführt werden. Andere Repräsentations- oder Darstellungsobjekte, wie z. B. Kuchendiagramme und Tabellen, können mit einem VDO auf ähnliche Art und Weise verbunden werden.
  • Das Balkendiagramm und das VDO können in unterschiedlichen Speicherbereichen in einem verteilten System sein.
  • Ein weiterer Typ eines Sekundärobjekts ist ein Knopf. Knöpfe dienen dazu, Primärobjekte zu verzieren. Es existieren Graphikknöpfe und Textknöpfe. Der Benutzer kann einen Graphikknopf zeichnen oder ein Bild in einen Graphikknopf "einkleben". Text kann aufeinen Textknopf geschrieben werden, oder zu einem Textknopf kopiert oder bewegt werden.
  • Knöpfe haben ebenfalls eine weitere Verwendung. Sie können mit einem Primärobjekt (im allgemeinen wie oben bezüglich des VDO und des Balkendiagramms beschrieben) verbunden werden, derart, daß, wenn ein Benutzer einen Knopf auswählt, dies bewirkt, daß das System umschaltet, um das Primärobjekt zu betrachten, mit dem der Knopf verbunden ist.
  • Wenn ein Primärobjekt P mit einem Sekundärobjekt S schwach verbunden ist, gelten im allgemeinen die folgenden Regeln:
  • wenn P oder S bewegt wird - wird P mit S schwach verbunden bleiben;
  • wenn P kopiert wird - wird die Kopie von P nicht mit S verbunden sein;
  • wenn S kopiert wird - wird P mit sowohl S als auch der Kopie von S schwach verbunden sein;
  • wenn P oder S zerstört wird - wird bei dem Verbleibenden die Verbindung gelöst.
  • Verbindung lösen oder trennen
  • Um ein Sekundärobjekt zu trennen, wählt der Benutzer den Trennungskasten 70 desselben. Dies bewirkt, daß das Sekundärfenster SW, das das Sekundärobjekt betrachtet, eine Nachricht Trennen zu dem Objekt sendet. Das Sekundärobjekt löscht seine Verbindungsdaten und sendet eine Nachricht Trennen zu dem Primärobjekt, mit dem es verbunden ist. Das Primärobjekt ändert dann seine Liste von verbundenen Objekten.
  • In dem Fall, daß ein Primärobjekt, mit dem ein Sekundärobjekt verbunden ist, zerstört wird, empfängt das Sekundärobjekt eine Nachricht Trennen und löscht seine Verbindungsdaten.
  • Wenn eine Darstellung, wie z. B. ein Balkendiagramm, getrennt wird, wird dieselbe die Werte und Etiketten zurückhalten, die dieselbe zuletzt von dem VDO erhielt, mit dem sie verbunden war. Diese Werte können noch von einem Benutzer verändert werden, solche Änderungen werden jedoch nicht länger das VDO aktualisieren.
  • Kopieren
  • Die Operation Kopieren ist in etwa der Bewegenoperation ähnlich, jedoch einfacher.
  • Um eine Kopieroperation einzuleiten, zieht ein Benutzer ein Icon oder ein Sekundärobjekt von einem Fenster zu einem anderen oder zu einer unterschiedlichen Position in demselben Fenster. Fig. 12a zeigt ein Ordnericon 80, das ein Ordnerobjekt C darstellt, das von einem Quellenobjekt S (beispielsweise dem Desktop) aufeiner ersten Maschine (MC1) enthalten ist, und das von einem Quellenfenster SW betrachtet wird, welches zu einem Zielobjekt T bewegt wird, das von einem Zielfenster TW betrachtet wird. Fig. 12b zeigt diese Objekte.
  • Wenn die versuchte Kopieroperation gültig ist, erhält das Quellenfenster SW von dem Zielfenster TW die ID des Zielobjekts T und eine Einfügungsposition innerhalb des Zielobjekts T. Das Quellenfenster SW sendet dann einen Nachricht Objekt Kopieren zu S. S ruft dann den OM auf, um eine Nachricht Bewegen Kopieren Verriegeln zu plazieren. Wenn dieser Aufruffehlschlägt, wird die Operation abgebrochen, und es wird eine Warnnachricht Kann Nicht Kopieren zu dem Benutzer senden. Andernfalls sendet S eine Nachricht Selbst Kopieren zu C. Wenn C ein Typ eines Objekts ist, der nicht kopiert werden kann, z. B. der Papierkorb, sendet dasselbe eine Nachricht Werde Nicht Kopieren zu S, und S sendet wiederum eine Nachricht Werde Nicht Kopieren zu SW, das eine Warnnachricht dem Benutzer gegenüber anzeigt.
  • Andernfalls sendet C eine Nachricht Einfügen (C¹) zu T, welche als Daten eine serialisierte Form von C aufweist. Wenn C ein Sekundärobjekt ist, sendet es eine Nachricht Selbst Verbinden zu C¹, um C¹ aufzufordern, sich selbst mit dem Primärobjekt zu verbinden, mit dem C verbunden ist. Beim Empfangen der Nachricht Einfügen registriert T C¹ und fügt C¹ in seine Tabellen ein, und sendet eine entsprechende Nachricht Einfügen zu allen seinen Betrachtern. Diese Fenster fügen dann C¹ in ihre Tabellen ein und werden entsprechend neu gezeichnet.
  • Wenn C keine Kinder hat, sendet es eine Nachricht Kopieren Vollendet zu S, was dann eine Lösung von Bewegen Kopieren Verriegeln auslöst.
  • Wenn C Kinder hat, sendet es eine Nachricht Selbst Kopieren zu einem von diesen. Das Kindobjekt verhält sich genauso wie C und wird schließlich mit einer Nachricht Kopieren Vollendet antworten. C führt dies für alle seine Kinder durch und sendet schließlich eine Nachricht Kopieren Vollendet zu S. S löst ein Lösen von Bewegen Kopieren Verriegeln aus, und die Kopieroperation ist vollendet.
  • Die Fähigkeit, Primärobjekte und Sekundärobjekte zu verbinden, wie es oben beschrieben wurde, erlaubt es, daß eine Kette von Verbindungen aufgebaut wird, um ein Querverweisen zwischen Arbeitsgegenständen zu erleichtern, und um ebenfalls das Bereitstellen spezieller Möglichkeiten zu erreichen. Diese und weitere Merkmale der Erfindung werden nachfolgend bezugnehmend auf Bildschirmdarstellungen beschrieben.
  • Benutzersitzung
  • Dieser Abschnitt beschreibt nicht eine vollständige Benutzersitzung, sondern derselbe dient eher dazu, die Hauptobjektmanipulationen vom Standpunkt eines Benutzers aus darzustellen.
  • Bezugnehmend auf Fig. 13 sieht ein Benutzer (Eric), der gerade in das System (ASTRA) über das Systemfenster 80 eingetreten ist, den Inhalt seines Desktops durch ein erstes Aufgabenfenster 81. Es existiert eine Fensterauswahlspalte 82 rechts vom Systemfenster 80. Die Fensterauswahlspalte 82 ist ein Teil des Systemfensters und ist entworfen, um Bildschirmplatz einzusparen, indem es einem Benutzer ermöglicht wird, ein Aufgabenfenster zu minimieren (oder zu iconisieren), wie es in den zwei Beispielen gezeigt ist, die in Fig. 13 als 84 und 85 gezeigt sind, wobei das Aufgabenfenster wieder hergestellt werden kann, wenn auf das relevante Icon geklickt wird. Das Systemfenster 80 hat einen Menübalken "Aktivitäten" 86 (wie es bereits in Fig. 2 zu sehen war) zum Steuern von Fenstern.
  • Das Aufgabenfenster 81 hat einen Menübalken 88, der vier Menüs anbietet: "Gehe zu", "Konfigurieren", "gegenwärtig", "Erzeugen". Bei diesem Beispiel enthält das Desktop drei Objekte: "Papierkorb", "Angeboteschrank" und "PJet-Arbeit". Daher sind drei Icons zu sehen. Alle diese drei Objekte sind Primärobjekte des Ordnertyps, obwohl der Papierkorb und der Angeboteschrank spezielle Eigenschaften haben. Objekte können zerstört werden, indem sie auf den Papierkorb geworfen werden, wobei der Inhalt dieser Objekte dann beim Abmelden zerstört wird. Vorlagen für neue Objekte können erzeugt und in dem Angeboteschrank gespeichert werden, wobei ein Benutzer weitere Vorlagen hinzufügen kann.
  • Bezugnehmend auf Fig. 14 wird beim Auswählen des Menübalkens Aktivitäten 86 ein Menü 87 mit den folgenden drei Optionen angezeigt: "Erzeugen", "Zerstören" und "Schließen". Das Auswhlen von Schließen bewirkt, daß der Benutzer abgemeldet wird. Wenn der Benutzer den Wunsch hat, ein neues Aufgabenfenster beispielsweise auf dem Ornder PJet-Arbeit, zu öffnen, wählt der Benutzer aus dem Menü 87 Erzeugen, wonach er auf das Icon PJet-Arbeit klickt. Dies bewirkt das Erzeugen eines zweiten Aufgabenfensters 90, welches zu Anfang auf das Desktop sieht und navigiert werden kann, um den Inhalt des Ornders PJet-Arbeit zu betrachten, wie es in Fig. 15 gezeigt ist. Der Ordner PJet-Arbeit enthält drei Objekte: zwei Dokumente, nämlich Zeichnungen und PJ-Protokoll, und einen Ordner PJ-Temperatur. Das Auswählen von Zerstören und dann das Klicken aufein Aufgabenfenster bewirkt, daß das Aufgabenfenster zerstört wird.
  • Genauso wie das Erzeugen eines neuen Aufgabenfensters, um ein unterschiedliches Objekt zu betrachten, ist es möglich, den Brennpunkt eines existierenden Aufgabenfensters (wie vorher erklärt) zu verändern. Um dies zu tun, wählt der Benutzer die Option Gehe zu von dem Menübalken 88, was in einem Menü 91 resultiert, das angezeigt wird, wie es in Fig. 16 gezeigt ist, und das vier Optionen hat: "Letztes", "Jüngst", "Eltern" und "Navigator". Eine Auswahl dieser Optionen hat die folgenden Konsequenzen:
  • Letztes: bewirkt, daß das System um ein Fenster zurückläuft;
  • Jüngst: bewirkt, daß ein Fenster-Historienbereich (nicht gezeigt) angezeigt wird, der die Icons von Objekten zeigt, die jüngst betrachtet wurden;
  • Eltern: verändert den Brennpunkt des Aufgabenfensters, um das Elternobjekt des gegenwärtig betrachteten Objekts zu betrachten;
  • Navigator: eine Spezialfunktion, die hier nicht beschrieben ist.
  • Die Option "Konfigurieren" auf dem Menübalken 88 ermöglicht ein Editieren des Menüs Gehe zu.
  • Um ein neues Objekt zu erzeugen, wählt der Benutzer die Option Erzeugen aus dem Menübalken 88, wodurch ein Menü 92 hochgebracht wird, welches die möglichen Objekte detailliert zeigt, die erzeugt werden können, wie es in Fig. 17 gezeigt ist. Diese Liste entspricht den Vorlagen, die in dem Angeboteschrank gespeichert sind. Bei einer Auswahl eines davon (in diesem Fall Schachbrett) verändert sich der Cursor in das Objekt hinein, das ausgewählt wurde, und der Benutzer kann das neu erzeugte Objekt "Schach" wie erwünscht "Ablegen". In diesem Beispiel legt der Benutzer das Objekt Schach in dem Ordner PJet-Arbeit ab, wie es in Fig. 18 dargestellt ist.
  • Bezugnehmend auf Fig. 19 hat der Bildschirm des Benutzers nun zwei Aufgabenfenster 100 und 102. Das Aufgabenfenster 100 betrachtet das Ordnerobjekt PJet-Arbeit, das die Dokumente enthält. Zeichnungen und PJ-Protokoll und einen Ordner PJ-Temperatur. Das Aufgabenfenster 102 betrachtet das Desktop, welches den Papierkorb (und das Ordnerobjekt PJet-Arbeit?) enthält. Wenn der Benutzer den Wunsch besitzt, das Dokument PJ-Protokoll von dem Ordner PJ-Arbeit in das Desktop zu bewegen, wählt der Benutzer das Dokument, was bewirkt, daß sein Icon verdunkelt wird, wie es in Fig. 20 gezeigt ist, und derselbe "Zieht" PJ-Protokoll von dem Aufgabenfenster 100 zu dem Aufgabenfenster 102, und derselbe löst dann PJ-Protokoll. Fig. 21 zeigt, daß PJ-Protokoll nun in dem Desktop ist, und nicht länger von PJet-Arbeit enthalten ist.
  • Bezugnehmend auf Fig. 22 wählt der Benutzer, wenn er wünscht, das Dokument Zeichnungen in das Desktop zu kopieren, wieder das Dokument Zeichnungen, und zwar diesesmal zum Kopieren, und derselbe zieht dasselbe in das Aufgabenfenster 102, wie es in Fig. 22 angezeigt ist, und derselbe legt dasselbe in dem Aufgabenfenster 102 ab, wie es in Fig. 23 gezeigt ist. Eine Kopie des Dokuments Zeichnungen liegt dann in dem Desktop, und das ursprüngliche Dokument bleibt in dem Ornder PJet-Arbeit.
  • Es ist nötig, eine Operation Bewegen von einer Operation Kopieren zu unterscheiden. Dies kann auf mehrere Arten und Weisen durchgeführt werden. Ein Weg besteht darin, daß ein Benutzer für eine Operation Bewegen auf das Objekt klicken muß, das nach seinem oder ihrem Beschluß bewegt werden soll, und daß er oder sie dann das Objekt zu der neuen Position ziehen muß. Wenn ein Mauseingabegerät verwendet wird, impliziert das Klicken das Drücken des Mausknopfs, wenn der Cursor über dem erwünschten Objekt positioniert ist, wobei Ziehen das Bewegen der Maus bedeutet, während der Knopf heruntergehalten wird. Die Operation Kopieren könnte dagegen erfordern, daß der Benutzer auf das erwünschte Objekt klickt und dann eine spezielle Taste, wie z. B. die Taste Alt drückt, und dann das Objekt zu der neuen Position zieht.
  • Fig. 24 zeigt einen Bildschirm, in dem zwei Aufgabenfenster, d. h. das Aufgabenfenster 100, das PJet-Arbeit betrachtet, und ein anderes Aufgabenfenster 104, das ein Ordnerobjekt betrachtet, vorhanden sind. Das Ordnerobjekt enthält ein Knopfobjekt. Fig. 24 zeigt, daß der Benutzer das Knopfobjekt ausgewählt hat, was bewirkt, daß ein Senkundärfenster 106 das Knopfobjekt umgibt, damit es sichtbar wird. Das Sekundärfenster 106 enthält mehrere spezialisierte Auswählerregionen, einschließlich eines Verbindungskastens 108. Durch Klicken auf den Verbindungskasten 108 und durch Ziehen des Dokuments Zeichnungen in PJet-Arbeit, verbindet der Benutzer das Knopfobjekt mit dem Dokument Zeichnungen, und eine "Kette" 109 ist vorübergehend sichbar. Der Knopf ist nun mit dem Dokument Zeichnungen verbunden und kann derart etikettiert sein, wie es in Fig. 25 gezeigt ist. Anschließend wird eine Auswahl des Knopfes bewirken, daß das System automatisch dazu übergeht, das Dokument Zeichnungen zu betrachten, derart, daß sich der Bildschirm von der Ansicht in Fig. 26 zu der in Fig. 27 gezeigten Ansicht verändert.
  • Bezugnehmend auf Fig. 28 betrachtet der Benutzer ein VDO in einem Aufgabenfenster 110, welches die Abmessungen und Indizes des VDOs, jedoch nicht die tatsächlichen Daten, zeigt. Die Fig. 29 und 30 zeigen ein Balkendiagramm-Sekundärobjekt 111, das mit dem VDO verbunden ist, das in einem Sekundärfenster 112 in dem Aufgabenfenster 110 betrachtet wird, bzw. ein Tabellensekundärobjekt 113, das in einem Sekundärfenster 114 in einem anderen Aufgabenfenster 115 betrachtet wird, welches ebenfalls mit dem VDO verbunden ist. Die Fig. 29 und 30 zeigen, wie ein Ändern eines Eintrags in der Tabelle (für Verwaltungsabteilung-Reisen) eine entsprechende Änderung in dem Balkendiagramm aufgrund einer Änderung der Daten, die von dem VDO gehalten werden, bewirkt. Anhang A

Claims (6)

1. Ein Objekt-basiertes Computersystem (10), das über eine Mehrzahl von diskreten Speicherbereichen verteilt ist, wobei die Objekte in einem Speicherbereich alle zusammen in Betrieb oder alle zusammen außer Betrieb sind, wobei das System eine Mehrzahl von Systemobjekten (24), eine Einrichtung zum Aktivieren von Objekten und eine Grafikanzeigeeinrichtung zum Anzeigen von Darstellungen der Objekte Benutzern gegenüber,
und eine Einrichtung (16) zum Aufzeichnen der Anwesenheit von Behälterschaftverbindungen zwischen Objekten aufweist, wobei eine Behälterschaftverbindung von einem Objekt, dem Behälter, zu einem anderen Objekt, dem enthaltenen Objekt ausgeführt ist, wobei der Behälter das enthaltene Objekt enthält,
gekennzeichnet dadurch, daß das System Behälterschaft- Verbindungen erhält, derart, daß ein Objekt nicht mehr als einen Behälter hat,
und durch eine Einrichtung (16), um auch die Anwesenheit von schwachen Verbindungen zwischen Objekten aufzuzeichnen, wobei das System derart angeordnet ist, daß, wenn ein Objekt, das andere Objekte enthält, zerstört wird, die Objekte, die dasselbe enthält, ebenfalls zerstört werden, während, wenn eines von zwei Objekten, die miteinander schwach verbunden sind, zerstört wird, das andere Objekt getrennt wird und weiterhin existiert; wobei das System in der Lage ist, Behälterschaftverbindungen zwischen einem Objekt in einem Speicherbereich und anderen Objekten in dem gleichen Speicherbereich zu halten, und wobei das System in der Lage ist, schwache Verbindungen zwischen einem Objekt in einem Speicherbereich und anderen Objekten in einem anderen Speicherbereich zu halten.
2. Ein System (10) gemäß Anspruch 1, das Primärobjekte (P) und Sekundärobjekte (S) aufweist, wobei nur Primärobjekte in der Lage sind, andere Objekte zu enthalten.
3. Ein System (10) gemäß Anspruch 2, bei dem ein Primärobjekt (P) in der Lage ist, durch eine Behälterschaftverbindung oder eine schwache Verbindung mit einem Sekundärobjekt (S) in dem gleichen Speicherbereich verbunden zu sein.
4. Ein System (10) gemäß Anspruch 2 oder 3, bei dem die Existenz einer schwachen Verbindung zwischen einem Pnmärobjekt (P) und einem Sekundärobjekt (5) den Effekt hat, daß ein Benutzer, der das Sekundärobjekt auswählt, bewirkt, daß das Primärobjekt, mit dem dasselbe schwach verbunden ist, automatisch angezeigt wird.
5. Ein System (10) gemäß einem der Ansprüche 2 bis 4, bei dem ein Sekundärobjekt in der Lage ist, eine schwache Verbindung mit einem anderen Sekundärobjekt zu halten.
6. Ein System (10) gemäß einem der vorhergehenden Ansprüche, das eine Einrichtung zum Speichern der Identität von Objekten, mit denen ein Objekt verbunden ist, zusammen mit einer Anzeige der Beschaffenheit jeder Verbindung aufeine verteilte Art und Weise aufweist.
DE69032348T 1990-07-31 1990-07-31 Objektbasiertes System Expired - Fee Related DE69032348T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP90308449A EP0469198B1 (de) 1990-07-31 1990-07-31 Objektbasiertes System

Publications (2)

Publication Number Publication Date
DE69032348D1 DE69032348D1 (de) 1998-07-02
DE69032348T2 true DE69032348T2 (de) 1998-09-24

Family

ID=8205505

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69032348T Expired - Fee Related DE69032348T2 (de) 1990-07-31 1990-07-31 Objektbasiertes System

Country Status (3)

Country Link
US (1) US5584035A (de)
EP (1) EP0469198B1 (de)
DE (1) DE69032348T2 (de)

Families Citing this family (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2270242A (en) * 1992-08-29 1994-03-02 Ibm A method of editing for an object oriented computer system
US5812862A (en) * 1993-05-10 1998-09-22 Apple Computer, Inc. Computer-human interface system for compound documents
US5623679A (en) * 1993-11-19 1997-04-22 Waverley Holdings, Inc. System and method for creating and manipulating notes each containing multiple sub-notes, and linking the sub-notes to portions of data objects
US5623681A (en) * 1993-11-19 1997-04-22 Waverley Holdings, Inc. Method and apparatus for synchronizing, displaying and manipulating text and image documents
US6339767B1 (en) 1997-06-02 2002-01-15 Aurigin Systems, Inc. Using hyperbolic trees to visualize data generated by patent-centric and group-oriented data processing
US6963920B1 (en) 1993-11-19 2005-11-08 Rose Blush Software Llc Intellectual asset protocol for defining data exchange rules and formats for universal intellectual asset documents, and systems, methods, and computer program products related to same
US5696963A (en) * 1993-11-19 1997-12-09 Waverley Holdings, Inc. System, method and computer program product for searching through an individual document and a group of documents
US5806079A (en) 1993-11-19 1998-09-08 Smartpatents, Inc. System, method, and computer program product for using intelligent notes to organize, link, and manipulate disparate data objects
US6877137B1 (en) * 1998-04-09 2005-04-05 Rose Blush Software Llc System, method and computer program product for mediating notes and note sub-notes linked or otherwise associated with stored or networked web pages
US5991751A (en) * 1997-06-02 1999-11-23 Smartpatents, Inc. System, method, and computer program product for patent-centric and group-oriented data processing
US5799325A (en) * 1993-11-19 1998-08-25 Smartpatents, Inc. System, method, and computer program product for generating equivalent text files
US5732227A (en) * 1994-07-05 1998-03-24 Hitachi, Ltd. Interactive information processing system responsive to user manipulation of physical objects and displayed images
US6266057B1 (en) * 1995-07-05 2001-07-24 Hitachi, Ltd. Information processing system
JPH08194831A (ja) * 1995-01-19 1996-07-30 Canon Inc 画像処理方法及び装置
US6212575B1 (en) 1995-05-05 2001-04-03 Apple Computer, Inc. Extensible, replaceable network component system
US6122675A (en) * 1995-05-05 2000-09-19 Apple Computer, Inc. Replaceable and extensible log component of a network component system
US5784056A (en) * 1995-12-29 1998-07-21 Sun Microsystems, Inc. System and method for temporally varying pointer icons
US6026416A (en) 1996-05-30 2000-02-15 Microsoft Corp. System and method for storing, viewing, editing, and processing ordered sections having different file formats
US5897639A (en) * 1996-10-07 1999-04-27 Greef; Arthur Reginald Electronic catalog system and method with enhanced feature-based search
US5909214A (en) * 1996-11-04 1999-06-01 International Business Machines Corp. Method and system for drop guides for visual layout in Java layout managers
US5966441A (en) * 1996-11-18 1999-10-12 Apple Computer, Inc. Method and apparatus for creating a secure autonomous network entity of a network component system
US5864850A (en) * 1997-02-27 1999-01-26 Apple Computer, Inc. Asynchronous-event opening component of a network component system
US5907843A (en) * 1997-02-27 1999-05-25 Apple Computer, Inc. Replaceable and extensible navigator component of a network component system
US6065116A (en) * 1997-05-07 2000-05-16 Unisys Corporation Method and apparatus for configuring a distributed application program
US5917485A (en) * 1997-05-07 1999-06-29 Unisys Corporation User assistance for data processing systems
US6677960B1 (en) 1997-05-07 2004-01-13 Unisys Corporation User assistance for heterogeneous data processing systems
US6667747B1 (en) 1997-05-07 2003-12-23 Unisys Corporation Method and apparatus for providing a hyperlink within a computer program that access information outside of the computer program
US6594689B1 (en) 1997-05-08 2003-07-15 Unisys Corporation Multi-platform helper utilities
US6154213A (en) * 1997-05-30 2000-11-28 Rennison; Earl F. Immersive movement-based interaction with large complex information structures
US5920725A (en) * 1997-07-02 1999-07-06 Adaptivity Inc. Run-time object-synthesis and transparent client/server updating of distributed objects using a meta server of all object descriptors
US6377263B1 (en) * 1997-07-07 2002-04-23 Aesthetic Solutions Intelligent software components for virtual worlds
US6587121B1 (en) 1997-12-19 2003-07-01 Unisys Corporation Graphical table of contents for a help system
JPH11266384A (ja) * 1998-03-18 1999-09-28 Minolta Co Ltd デジタルカメラシステム
US6898791B1 (en) * 1998-04-21 2005-05-24 California Institute Of Technology Infospheres distributed object system
US7966328B2 (en) 1999-03-02 2011-06-21 Rose Blush Software Llc Patent-related tools and methodology for use in research and development projects
US7716060B2 (en) 1999-03-02 2010-05-11 Germeraad Paul B Patent-related tools and methodology for use in the merger and acquisition process
US6662237B1 (en) * 1999-06-24 2003-12-09 Contivo, Inc. System for documenting application interfaces and their mapping relationship
US6370538B1 (en) * 1999-11-22 2002-04-09 Xerox Corporation Direct manipulation interface for document properties
US6898783B1 (en) * 2000-08-03 2005-05-24 International Business Machines Corporation Object oriented based methodology for modeling business functionality for enabling implementation in a web based environment
US7171455B1 (en) 2000-08-22 2007-01-30 International Business Machines Corporation Object oriented based, business class methodology for generating quasi-static web pages at periodic intervals
US6684388B1 (en) 2000-08-22 2004-01-27 International Business Machines Corporation Method for generating platform independent, language specific computer code
US6853994B1 (en) 2000-08-30 2005-02-08 International Business Machines Corporation Object oriented based, business class methodology for performing data metric analysis
US7698291B2 (en) * 2004-08-26 2010-04-13 Sap Ag Method and system for integrating user-defined objects into a business management application
US7574677B2 (en) * 2004-09-13 2009-08-11 Sap Ag System and method for a transparent record
US20060135865A1 (en) * 2004-11-23 2006-06-22 General Electric Company Method and apparatus for synching of images using regions of interest mapped by a user
US7437080B2 (en) * 2005-02-03 2008-10-14 Stratalight Communications, Inc. Optical transmission system having optimized filter wavelength offsets
TWI362876B (en) * 2005-12-28 2012-04-21 Panasonic Corp Input unit, mobile terminal unit, and content data manipulation method in mobile terminal unit
US20100088623A1 (en) * 2006-10-13 2010-04-08 Core Aplli Incorporated Operational support computer program and operational assitance computer system
US9489666B2 (en) * 2011-04-29 2016-11-08 Verizon Patent And Licensing Inc. Methods and systems for providing subsidized access to network content
US10552804B2 (en) 2011-04-29 2020-02-04 Verizon Patent And Licensing Inc. Methods and systems for providing subsidized access to network content by way of a secure connection
US10789272B2 (en) * 2011-06-06 2020-09-29 International Business Machines Corporation Scalable, distributed containerization across homogenous and heterogeneous data stores
US9471642B2 (en) 2013-10-10 2016-10-18 Sap Se Automatic flagging of frequently accessed data objects for business application
DE102014221888A1 (de) * 2014-10-28 2016-04-28 Robert Bosch Gmbh Verfahren und Vorrichtung zur Lokalisierung eines Fahrzeugs in seinem Umfeld
WO2018009567A1 (en) 2016-07-05 2018-01-11 Nauto Global Limited System and method for automatic driver identification
WO2018009552A1 (en) * 2016-07-05 2018-01-11 Nauto Global Limited System and method for image analysis
WO2018031678A1 (en) 2016-08-09 2018-02-15 Nauto Global Limited System and method for precision localization and mapping
WO2018053175A1 (en) 2016-09-14 2018-03-22 Nauto Global Limited Systems and methods for near-crash determination
US10733460B2 (en) 2016-09-14 2020-08-04 Nauto, Inc. Systems and methods for safe route determination
CN110178104A (zh) 2016-11-07 2019-08-27 新自动公司 用于确定驾驶员分心的系统和方法
US10430695B2 (en) 2017-06-16 2019-10-01 Nauto, Inc. System and method for contextualized vehicle operation determination
US10453150B2 (en) 2017-06-16 2019-10-22 Nauto, Inc. System and method for adverse vehicle event determination
US11392131B2 (en) 2018-02-27 2022-07-19 Nauto, Inc. Method for determining driving policy

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4937036A (en) * 1986-04-28 1990-06-26 Xerox Corporation Concurrent display of data from two different display processors and user interface therefore
US5072412A (en) * 1987-03-25 1991-12-10 Xerox Corporation User interface with multiple workspaces for sharing display system objects
US5008853A (en) * 1987-12-02 1991-04-16 Xerox Corporation Representation of collaborative multi-user activities relative to shared structured data objects in a networked workstation environment
US4974173A (en) * 1987-12-02 1990-11-27 Xerox Corporation Small-scale workspace representations indicating activities by other users
US4953080A (en) * 1988-04-25 1990-08-28 Hewlett-Packard Company Object management facility for maintaining data in a computer system
US5079695A (en) * 1988-04-25 1992-01-07 Hewlett-Packard Company Object management facility which includes a snapshot facility for providing data transfer between two objects
US4982344A (en) * 1988-05-18 1991-01-01 Xerox Corporation Accelerating link creation
US5065347A (en) * 1988-08-11 1991-11-12 Xerox Corporation Hierarchical folders display
US5121478A (en) * 1988-09-08 1992-06-09 Xerox Corporation Window system with independently replaceable window functionality
US5117351A (en) * 1988-10-21 1992-05-26 Digital Equipment Corporation Object identifier generator for distributed computer system
US5029104A (en) * 1989-02-21 1991-07-02 International Business Machines Corporation Prestaging objects in a distributed environment
US5129084A (en) * 1989-06-29 1992-07-07 Digital Equipment Corporation Object container transfer system and method in an object based computer operating system
GB8917490D0 (en) * 1989-07-31 1989-09-13 Hewlett Packard Co Object based computer system
US5119493A (en) * 1990-02-23 1992-06-02 International Business Machines Corporation System for recording at least one selected activity from a selected resource object within a distributed data processing system
US5237654A (en) * 1990-04-17 1993-08-17 International Business Machines Corporation Hierarchical inter-panel process flow control
US5140677A (en) * 1990-05-11 1992-08-18 International Business Machines Corporation Computer user interface with window title bar mini-icons

Also Published As

Publication number Publication date
US5584035A (en) 1996-12-10
DE69032348D1 (de) 1998-07-02
EP0469198B1 (de) 1998-05-27
EP0469198A1 (de) 1992-02-05

Similar Documents

Publication Publication Date Title
DE69032348T2 (de) Objektbasiertes System
DE69032349T2 (de) Objektbasiertes System
DE69129091T2 (de) System und Verfahren zum Emulieren einer Fensterverwaltungsumgebung mit einer einheitlichen Fensterschnittstelle
DE69805990T2 (de) Verfahren und vorrichtungen zum zugriff auf information und einheiten in mehreren arbeitsflächen
DE69425017T2 (de) Verkapselung in Objekten von extrahierten Teilen von Dokumenten
DE69022210T2 (de) Datenverarbeitungssystem.
DE69228645T2 (de) Verfahren zur Verwirklichung eines "Vorschaufensters" in einem objektorientierten Programmierungssystem
DE69525249T2 (de) Umschaltung zwischen darstellungs-/verhaltensthemen in graphischen benutzeroberflächen
DE69523229T2 (de) Benutzeroberfläche für eine Mehrzahl von untergeordneten Fenstern
DE69500885T2 (de) Verfahren und vorrichtung zur verarbeitung eines dokuments
DE69230303T2 (de) System zur Verwaltung von "Behälter" Datenobjekten
DE69525338T2 (de) Abstraktion von mustern und farben in einer graphischen benutzerschnittstelle
DE69129536T2 (de) Objektbasiertes rechnersystem
DE69620301T2 (de) Fensterverwaltung
DE69533568T2 (de) Virtuelles Desk-Top-System und Verfahren dafür
DE69310214T2 (de) Dialogsystem
DE69310201T2 (de) Objektorientierte applikationsschnittstelle.
DE69817158T2 (de) Benutzerschnittstellen-Mechanismus zur Manipulierung von Kontexten in Computerverwaltungsapplikationen
DE69229463T2 (de) System und graphisches Verfahren zur Erzeugung eines Objektes
DE69328522T2 (de) Verfahren und Vorrichtung zur Benutzung von Browsern für Sammlungen
DE69023755T2 (de) Verfahren zum graphischen Zugriff auf elektronische Daten mit beweglichen Ikonen.
DE69522052T2 (de) Verfahren zur Anzeige einer Mehrzahl an Informationsgruppen im gleichen Rechnerbildschirmbereich
DE69523593T2 (de) Vorrichtung und verfahren zur aufteilung der anwendung in einer graphischen benutzerschnittstelle
DE69805986T2 (de) Verfahren und vorrichtung zur konfigurierung von schiebefenstern
DE69526218T2 (de) System zur anpassung der erscheinung und des verhaltens graphischer benutzeroberflächen

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),

8339 Ceased/non-payment of the annual fee