DE69624693T2 - Verfahren und vorrichtung zur ausführung eines anwendungsprogramms - Google Patents
Verfahren und vorrichtung zur ausführung eines anwendungsprogrammsInfo
- Publication number
- DE69624693T2 DE69624693T2 DE69624693T DE69624693T DE69624693T2 DE 69624693 T2 DE69624693 T2 DE 69624693T2 DE 69624693 T DE69624693 T DE 69624693T DE 69624693 T DE69624693 T DE 69624693T DE 69624693 T2 DE69624693 T2 DE 69624693T2
- Authority
- DE
- Germany
- Prior art keywords
- file
- program
- cell
- window
- module
- 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
Links
- 238000000034 method Methods 0.000 title claims description 42
- PWPJGUXAGUPAHP-UHFFFAOYSA-N lufenuron Chemical compound C1=C(Cl)C(OC(F)(F)C(C(F)(F)F)F)=CC(Cl)=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F PWPJGUXAGUPAHP-UHFFFAOYSA-N 0.000 title 1
- 238000004891 communication Methods 0.000 claims description 19
- 239000000284 extract Substances 0.000 claims 1
- 230000009471 action Effects 0.000 description 106
- 230000000007 visual effect Effects 0.000 description 56
- 230000006870 function Effects 0.000 description 53
- 238000012545 processing Methods 0.000 description 26
- 230000008569 process Effects 0.000 description 19
- 230000000875 corresponding effect Effects 0.000 description 12
- 238000011161 development Methods 0.000 description 9
- 230000018109 developmental process Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 9
- 238000013461 design Methods 0.000 description 7
- 230000003993 interaction Effects 0.000 description 5
- 238000005096 rolling process Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000003860 storage Methods 0.000 description 3
- 230000001276 controlling effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 235000004522 Pentaglottis sempervirens Nutrition 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008568 cell cell communication Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/543—User-generated data transfer, e.g. clipboards, dynamic data exchange [DDE], object linking and embedding [OLE]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
- G06F9/4484—Executing subprograms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45508—Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
- G06F9/45512—Command shells
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Digital Computer Display Output (AREA)
- User Interface Of Digital Computer (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Description
- Die Erfindung bezieht sich auf ein Verfahren zum Betreiben eines Computers für die Durchführung eines Anwenderprogramms in einer mit Fenstern arbeitenden (Window-Base) Umgebung mit den im Oberbegriff des Anspruchs 1 vorausgesetzten Merkmalen, sowie auf eine Vorrichtung zur Durchführung eines solchen Verfahrens mit den im Oberbegriff des Anspruchs 9 angegebenen Merkmalen.
- Die Erfindung ist hilfreich in einem Datenverarbeitungssystem, mit welchem sich leicht Computer-Anwenderprogramme erstellen lassen, bei denen hauptsächlich Bilder und Sprache verarbeitet werden. Die Erfindung bezieht sich auch auf eine Computerprogrammarchitektur und ein entsprechendes Verfahren für Programm- Module, die nicht durch andere Programm-Module gesteuert werden.
- In der WO-A-94/28480 ist ein System und Verfahren zur Erstellung einer interaktiven Multimediapräsentation in einer mit Fenstern arbeitenden Umgebung beschrieben. Bei diesem System wird ein Simulatorfenster dargestellt, mit welchem ein Benutzer Multimediadaten erstellen kann. Das Benutzer-Interface ist ebenso wie nicht-hierarchische Links zwischen Fenstern im Einzelnen erläutert. Fehlt jegliche Programmarchitektur, um die nicht- hierarchischen Links zwischen den Fenstern zu erhalten, dann muss das System mit einer üblichen Programmarchitektur, wie sie in Fig. 11A der hier vorliegenden Beschreibung gezeigt ist, gebildet werden. Daher ist die Betriebsgeschwindigkeit des Systems gering, und die Größe des Programms ist erheblich.
- Die EP-A-0 547 622 offenbart ebenfalls ein System zur Verarbeitung grafischer Daten in einer Fenster-Umgebung und beschreibt ein Benutzer-Interface und die Struktur der zu verarbeitenden Daten. Auch dieses System muss in der üblichen Programmarchitektur gemäß Fig. 11A der vorliegenden Beschreibung gebildet werden. Daher ist die Arbeitsgeschwindigkeit des Systems langsam und die Größe des Programms umfangreich.
- Der Aufsatz "Principles of Concurrent Programming" von M. Ben- Ari, Prentice-Hall International, 1982, Seite 6, Zeilen 2 bis 16 und die zugehörige Figur beschreiben lediglich eine Parallelverarbeitung, die einen Parallelverarbeitungs-Programm-Modul enthält.
- Die übliche Computerprogrammarchitektur besteht aus einem Hauptprogramm und einer Mehrzahl von Programm-Modulen. Das Hauptprogramm steuert und koordiniert typischerweise den Betrieb der Programm-Module. Fig. 22 zeigt eine schematische Darstellung eines Programms 100 mit einer solchen Architektur. In Fig. 22 enthält das Hauptprogramm 102 eine Mehrzahl von Anweisungen, wie etwa 104 und 106. Einige dieser Anweisungen wären CALL- Anweisungen, wie die Anweisungen 108 und 110. Wenn diese beiden CALL-Anweisungen angeführt werden, rufen sie Programm-Module 120 und 130 auf. Das Hauptprogramm 102 kann eine LOOP-Anweisung enthalten, welche das Hauptprogramm 102 veranlasst, kontinuierlich eine Schleife zu durchlaufen. Das Hauptprogramm 102 enthält auch eine STOP-Anweisung zum Beenden des Programms. Es sei darauf hingewiesen, dass das Programm 100 in unterschiedlichen Programmiersprachen geschrieben werden könnte, und die genaue Syntax der Anweisungen und die Programmstruktur könnten sich mit den Programmiersprachen ändern.
- Das Programm 100 enthält eine Mehrzahl von Programm-Modulen, wie die Module 120 und 130, welche vom Hauptprogramm 102 aufgerufen werden. Das Modul 120 enthält eine Mehrzahl von Anweisungen, wie die Anweisungen 122 und 124. Es könnte ebenfalls eine Mehrzahl von CALL-Anweisungen enthalten, wie die Anweisung 126. Bei Durchführung dieser Anweisung ruft sie ein anderes Modul 140 auf. Schließlich enthält das Modul 120 eine RETURN-Anweisung.
- Wird die CALL-Anweisung 108 ausgeführt, dann springt das Programm 102 zum Modul 120, und es werden die Anweisungen 122, 124 und der Rest des Programms durchgeführt. Bei Durchführung der RETURN-Anweisung im Modul 120 kehrt das Programm 100 zur Anweisung 106 zurück, welche diejenige Anweisung ist, die der CALL- Anweisung 108 folgt. Zu diesem Zeitpunkt wird die Steuerung des Programms 100 zum Hauptprogramm 102 zurückgeführt, und dieses setzt seine Durchführung fort.
- Die Struktur aller der Module gleicht derjenigen des Moduls 120. Gleichermaßen wird der oben beschriebene Zurückspringmechanismus von allen CALL-Anweisungen im Programm 100 ausgeführt. Daher werden sie in dieser Beschreibung nicht weiter erläutert.
- Zur Durchführung dieses Rücksprungmechanismusses müssen die Rücksprungadressen der CALL-Anweisungen in einem RAM-Speicher festgehalten werden (typischerweise in einer als Datenstapel (stack) bezeichneten Speicherstruktur). Es können auch andere wichtige Zustandsinformationen des Computers vor dem Sprung zu dem aufgerufenen Modul, etwa Werte von Registern, festgehalten werden, wenn dies erforderlich ist (beispielsweise wenn zu einem Unterbrechungsservice-Unterprogramm (interrupt service routine) gesprungen wird). Wenn also das Hauptprogramm 102 den Modul 120 aufruft, dann kann der Inhalt dieser Register ebenfalls in den Datenstapel hineingeschoben (also festgehalten) werden. Gleichermaßen muss, wenn das Modul 120 das Modul 140 aufruft, die Rückkehradresse des Moduls 120 festgehalten werden. Die Inhalte entsprechender Register können in den Datenstapel eingefügt werden müssen. Somit könnte der Umfang des Datenstapels groß werden, wenn eine große Anzahl von CALL-Anweisungen auszuführen ist.
- Wird eine RETURN-Anweisung ausgeführt, dann wird die RETURN- Adresse zum Zurückkehren zum aufrufenden Programm benutzt. Die festgehaltene Information wird ebenfalls wiedergewonnen.
- Typischerweise enthält ein Programm mit der oben beschriebenen Architektur viele CALL-Anweisungen und viele Module. Diese Module könnten andere Module aufrufen (beispielsweise kann das Modul 120 das Modul 140 aufrufen), so dass hierdurch eine Kette von CALL-Anweisungen gebildet wird. Die genaue Historie dieser Kette muss aufbewahrt werden, so dass das zuletzt aufgerufene Modul ins Hauptprogramm zurückkehren kann. Eines der Probleme der üblichen Architektur liegt darin, dass die Zeit, die Kette entlang zu wandern, sehr lang sein kann. Wie oben gesagt, muss jedes Mal, wenn eine CALL-Anweisung aufgerufen wird, eine gewisse Menge an Zustandsinformation festgehalten werden, und dies vergrößert den Umfang der Programmausführung. Jedes Mal, wenn eine RETURN-Anweisung ausgeführt wird, müssen die festgehaltenen Informationen umgespeichert werden, und auch dies erhöht den Durchführungsaufwand. Als Folge hiervon ist die Durchführungsgeschwindigkeit von Programmen, die unter Verwendung üblicher Architektur geschrieben sind, niedrig.
- Einige Eigenschaften der üblichen Programme sind folgende: (a) Es gibt ein steuerndes ("Boss") Programm, also Hauptprogramm 102, (b) die gesamte Verkettungsinformation (also Rückkehradresse und Register) muss aufbewahrt werden, wenn ein Teil des Programms (ein aufrufendes Programm wie das Hauptprogramm 102 oder einige der Module) eine Ausführung zu einem anderen (das aufgerufene Programm) überträgt und (c) die Verkettungsinformation wird benutzt, um Steuerung und Information zum aufrufenden Programm zurückzubringen. Diese Architektur könnte als "Boss"- Architektur bezeichnet werden. Das aufrufende Modul kann als "Master" betrachtet werden, während die aufgerufenen Module als "Slave" angesehen werden können, welche die vom Master ausgegebenen Befehle ausführen und dann die Ergebnisse an den Master berichten.
- In jüngerer Zeit sind andere Programmarchitekturen entwickelt worden. Jedoch basieren sie ebenfalls auf der "Boss"-Architektur. Ein Beispiel ist die Objekt-orientierte Programmierung. Dieses Verfahren erlaubt die Wiederverwendung von Codes und relativ schnelle Entwicklung von Anwendungen. Jedoch haben die Anwendungen immer noch ein steuerndes Hauptteil, welches erheblichen Zusatzaufwand mit sich bringt.
- Fortschritte in der Programmarchitektur wurden auch in Betriebsumgebungen gemacht. Ein Beispiel ist ein Interprozess- Kommunikations-Protokoll, das dynamischer Datenaustausch (DDE) genannt wird und bei Microsoft's MS Windows benutzt wird. DDE verwendet einen gemeinsamen Speicher zum Datenaustausch zwischen Prozessen und ein Protokoll zum Synchronisieren des Datendurchlaufs. Der Kern des DDE-Protokolls ist die DDE-Nachricht. Ein Prozess (Kunde) kann einen anderen Prozess (Server) bitten, einen Dienst durchzuführen. Speziell benutzt der Kunde eine Nachricht WM_DDE_EXECUTE, um einen Befehl an den Server zu geben, indem eine Befehlskette in einem globalen Speicherblock gespeichert wird und an den Server ein Zugriff zu dem globalen Speicherblock weitergegeben wird. Der Server gibt danach eine Nachricht WM_DDE_ACK an den Kunden zurück. Wenn der Server den Befehl erfolgreich ausgeführt hat, dann würde die Nachricht WM_DDE_ACK einen Wert TRUE an ein DDEACK Strukturteil, das mit "fAck" bezeichnet ist, zurückgeben. Ist der Befehl nicht erfolgreich ausgeführt worden, dann liefert der Server eine Nachricht WM_DDE_ACK, wobei "fAck" auf FALSE gesetzt ist. Erhält der Kunde die Nachricht WM_DDE_ACK vom Server, dann entfernt er die Befehlskette aus dem globalen Speicher und fährt fort, die geeigneten Aktionen dementsprechend vorzunehmen.
- Es ist klar, dass die Interprozess-Kommunikation über DDE viele Eigenschaften der bekannten, in Fig. 22 veranschaulichten Architektur hat. Speziell sind die Bewachung von Verkettungsinformationen und die Rückgabe der Kontrolle an den Kunden wichtige Gesichtspunkte von DDE. Während die Architektur gemäß Fig. 22 den Inhalt weniger Register und die Rückkehradressen in jeder Interprozess-Kommunikation speichert, verwendet DDE umfangreiche Befehle und Datenstrukturen. Aus diesem Grund ist DDE sogar noch weniger effizient als die Architektur gemäß Fig. 22.
- Ein weiteres Beispiel neuer Entwicklungen in der Betriebsumgebung ist eine Architektur, die bei MS Windows benutzt wird und OLE (Object Linking and Embedding) genannt wird. Diese Architektur erlaubt eine Anwendung (z. B. ein Word Prozessorprogramm) mit einer oder mehreren Anwendungen (z. B. ein Tabellenkalkulationsprogramm) zu verketten. In der Terminologie von OLE können Anwendungen als Kundenanwendungen und Serveranwendungen klassifiziert werden. MS Windows benutzt eine "Registrierungs- Datenbank", um eine Informationssammlung über OLE-Anwendungen und Dateikennungen für MS Windows Anwendungen zu erhalten. Die gesamte Kommunikation zwischen Anwendungen wird von OLE abgewickelt. Speziell kommunizieren OLE-Anwendungen über die Benutzung von drei Dynamik-Link-Bibiliotheken (DLL): OLECLI.DLL, OLESRV.DLL und SHELL.DLL. Die SHELL.DLL erlaubt Kommunikationen von Anwendungen mit der Registrierdatenbank. Die OLECLI.DLL ist die OLE Kundenbibliothek und die OLESRV.DLL ist die Serverbibliothek. Die OLE Server- und Kundenbibliotheken kommunizieren miteinander über DDE-Nachrichten. Der typische Kommunikationsweg für eine OLE-Funktion enthält den Aufruf der Funktion, DDE- Nachrichten zwischen OLE-Bibliotheken und Verbreitungsinformation für die Kunden- und Serveranwendungen.
- Wenn beispielsweise die OLESRV.DLL Bibliothek eine Nachricht von der OLECLI.DLL Bibliothek enthält, dass eine Kundenanwendung einen Gegenstand benötigt, dann ruft die OLESRV.DLL Bibliothek geeignete Servermethoden auf. Beispielsweise ruft die OLESRV.DLL ein ServerOpen() Verfahren, wenn ein Benutzer einen Gegenstand in einem OLE aktiviert: Kundenanwendung. Die Serveranwendung führt dann die Operation des ServerOpen() Verfahrens durch. Ist ServerOpen() erfolgreich durchgeführt, dann gibt das Verfahren OLE_OK zurück. Ist ServerOpen() nicht erfolgreich durchgeführt worden, dann wird OLE_ERROR_OPEN zurückgegeben. Die Kundenanwendung kann dann geeignete Aktionen durchführen.
- Die Registrierungsdatenbank in OLE enthält die Verkettung oder Geschichte der Anwendungen. Die Registrierdatenbank und die Kunden-Server-Struktur von OLE bilden eine "Boss"-Architektur. Weiterhin erfordert eine einfache Kommunikation zwischen Anwendungen die Beteiligung vieler Windows-Komponenten (z. B. DDE, Dynamik-Link-Bibiliotheken etc.). Es ist allgemein bekannt, dass MS Windows Anwendungen viel Speicher- und Prozessorbandbreite benötigen. Die "Boss"-Architektur kann daher zusammen mit der komplizierten Struktur von MS Windows Komponenten ein Grund für das langsame Arbeiten sein.
- Es ist daher eine Aufgabe der Erfindung, ein Datenverarbeitungssystem und eine Computerprogrammarchitektur und Verfahren zu schaffen, welche Anwendungen durchführen, die sich schnell durchführen lassen und sich leicht erstellen lassen.
- Diese Aufgabe wird durch die in den Ansprüchen 1 bzw. 9 angegebenen Merkmale gelöst. Spezielle Ausführungsformen der Erfindung sind in den Unteransprüchen beschrieben.
- Fig. 1 zeigt ein Flussdiagramm der Datenverarbeitung in einem Datenverarbeitungssystem gemäß der Erfindung;
- Fig. 2 ist ein Blockdiagramm, welches die gegenständliche Struktur des erfindungsgemäßen Datenverarbeitungssystems veranschaulicht;
- Fig. 3 zeigt eine Blockdarstellung der logischen Struktur des erfindungsgemäßen Datenverarbeitungssystems;
- Fig. 4 zeigt ein Beispiel für ein Fenster;
- Fig. 5A bis 5D veranschaulichen die Prozeduren zum Einstellen der Parameter;
- Fig. 6 ist ein Flussdiagramm zur Veranschaulichung eines Aktionseinstellprozesses;
- Fig. 7 zeigt den Aufbau eines Aktionseinstell-Schirmbildes;
- Fig. 8 zeigt ein Flussdiagramm zur Veranschaulichung eines Betriebs, wenn ein Vektorbild dargestellt wird;
- Fig. 9 ist ein Flussdiagramm zur Erläuterung eines automatischen Aufrufprozesses;
- Fig. 10A bis 10G sind Flussdiagramme zur Erläuterung des Steuerungsflusses Aktion für Aktion;
- Fig. 11A und 11B zeigen einen Vergleich der Architektur nach dem Stande der Technik mit der Architektur gemäß der Erfindung;
- Fig. 12 ist eine Darstellung zur Veranschaulichung der Interaktion von Zellen gemäß der Erfindung;
- Fig. 13 zeigt ein Blockdiagramm der Struktur einer DNA-Datei gemäß der Erfindung;
- Fig. 14 zeigt ein Blockdiagramm der Struktur einer Zelle gemäß der Erfindung;
- Fig. 15 zeigt ein Blockdiagramm eines Computersystems, auf welchem Anwendungen gemäß der Erfindung laufen;
- Fig. 16 zeigt verschiedene Fenster, welche zu sichtbaren Zellen bei der Durchführung eines Multimedia- Entwicklungssystems gemäß der Erfindung gehören;
- Fig. 17 zeigt ein Fenster für einen Benutzer zum Eingeben von Informationen in eine DNA-Datei gemäß der Erfindung;
- Fig. 18 zeigt verschiedene Fenster, die zu einer "Button"- Zelle und zu sichtbaren Zellen während der Ausführung eines Multimedia-Entwicklungssystems gemäß der Erfindung gehören;
- Fig. 19 ist ein Fenster zur Veranschaulichung des Formats für einen Benutzer, um einen Button gemäß der Erfindung zu spezifizieren;
- Fig. 20 ist ein Fenster, welches dem Benutzer ein Format zeigt, um eine zu einer Button-Zelle gehörige sichtbare Zelle gemäß der Erfindung zu spezifizieren;
- Fig. 21 ist ein Flussdiagramm zur Veranschaulichung eines Zellen-Benachrichtigungsverfahrens gemäß der Erfindung; und
- Fig. 22 ist eine Darstellung einer Programmarchitektur nach dem Stande der Technik.
- Es sei nun ein Datenverarbeitungssystem (ein Programmerstellungs-Tool und ein mit diesem Tool erstelltes Anwendungsprogramm) gemäß der Erfindung beschrieben.
- Fig. 1 zeigt als Beispiel den Fluss der Datenverarbeitung, welche von dem erfindungsgemäßen Datenverarbeitungssystem ausgeführt wird. In diesem Beispiel wird in einem gegebenen Fenster (d. h. Zelle 1) eine Karte mit Gebäuden dargestellt. Wenn ein Benutzer in diesem Fall Gebäude mit einer Maus anklickt (Symbol 1 oder 4), dann öffnen sich weitere Fenster, wie die Zellen 2 und 5 zeigen, die vergrößerte perspektivische Ansichten der Gebäude zeigen. Klickt der Benutzer auf der vergrößerten perspektivischen Darstellung der Zelle 2 die "Schnittansicht (Symbol 2)" oder "Draufsicht (Symbol 3)" mit der Maus an, dann öffnen sich neue Fenster, wie sie in den Zellen 3 und 4 dargestellt sind und den Querschnitt und die Draufsicht des Gebäudes zeigen.
- Wenn der Benutzer die vergrößerte perspektivische Ansicht (Symbol 5) der Zelle 5 mit der Maus anklickt, dann führt ein Word Prozessor ein externes Programm durch, welches die Editierung von Dokumentendaten über dieses Gebäude erlaubt. Klickt der Benutzer auf dem vom Word Prozessor erstellten Dokument das Symbol 6 an, dann wird die Zelle 6 aufgerufen, um ein neues Fenster zu öffnen, welches die Fotografie des Architekten dieses Gebäudes zeigt.
- Üblicherweise wird ein solches Programm als einzelnes Programm mit Zellen 1 bis 6 und dem Word Prozessor gestaltet. Dieses einzelne Programm hat eine Pyramidenstruktur, die von einem einzelnen Managerprogramm (Manager) verwaltet wird. Das Schreiben eines solchen Programms erfordert die Arbeit eines Experten, der die notwendige Programmsprache versteht. Weiterhin wird ein solches Programm für eine Verringerung der Arbeitsgeschwindigkeit zu umfangreich.
- Zur Umgehung dieser Nachteile wird ein aufzurufendes Programm (EXE-Datei) erstellt, um bei dieser Ausführungsform nur Grundaktionen auszuführen. Die "Grundaktionen" bedeuten das Öffnen und Schließen eines Fensters, das Rollen (scrolling) eines Bildes, das Aufrufen einer anderen Anwendung, das Auswählen einer Displayschicht (display layer), das Erzeugen von Tönen usw. Jedem Symbol wird ein Parameter zugeordnet, welcher eine Aktion zur Ausführung eines Programms angibt, so dass das Anklicken jedes Symbols das Programm entsprechend dem zugehörigen Parameter ablaufen lässt. Es ist daher möglich, einfach einen Prozess wie beispielsweise das Öffnen eines Fensters und Darstellen eines gewünschten Bildes auf dem Bildschirm durchzuführen. Da Fenster Symbolen und Parametern sequentiell zugeordnet sind, wird die Datenverarbeitung gemäß Fig. 1 möglich. Ein einzelnes Programm, welches bei der Datenverarbeitung läuft, wird "Zelle" genannt. Im Beispiel nach Fig. 1 werden daher maximal 6 Ausführungsprogramme gleichzeitig durchgeführt, und maximal bestehen 6 Zellen nebeneinander. Diese 6 Zellen bilden eine einzelne Anwendung.
- Jede Zelle wird von einer separaten EXE-Datei gebildet, die, einmal aufgerufen, unabhängig von den anderen EXE-Dateien wird. Beispielsweise wird Zelle 2 nicht durch einen Aufrufbefehl von Zelle 1 aufgerufen. Wenn Zelle 2 geschlossen wird, ist es nicht notwendig, zur Verarbeitung der Zelle 1 zurückzukehren. Man braucht daher die Rückkehradresse zur Zelle 1, die Statusse der zugehörigen Register etc. nicht zu sichern, wenn Zelle 2 zu öffnen ist. Zelle 2 kann unabhängig vom Betrieb der Zelle 1 entsprechend der Selbstverarbeitung geschlossen werden. Zelle 1 kann geschlossen werden, während Zelle 2 geöffnet bleibt.
- Die Zellen kommunizieren miteinander, um Befehle und Daten auszutauschen, und jede kann andere Zellen und/oder sich selbst schließen und kann einen Prozess fordern.
- Es gibt im OS (Operating System) kein Programm, das die Zellen allgemein managt. Mit anderen Worten gibt es kein Programm, welches das allgemeine Management darüber, wie viele Fenster geöffnet werden, über den Status, die Displayinhalte und dergleichen der einzelnen Fenster durchführt.
- Bei dieser Struktur können lediglich durch Zuordnen von Symbolen zu Parametern andere Fenster (Zellen) nacheinander geöffnet werden, um Bilder in ihnen zu erzeugen, so dass normale Menschen, welche keine Programmsprachen verstehen, Anwendungen konstruieren können. Da das auszuführende Programm nur eine geringe Größe hat, weil es kein Programm gibt, welches das allgemeine Management durchführt, und weil es kein "Overhead" gibt, wird eine schnelle Verarbeitung erreicht.
- Es sei nun eine Struktur des Datenverarbeitungssystems beschrieben, welches die oben erwähnte Datenverarbeitung durchführt.
- Fig. 2 zeigt die Struktur des Datenverarbeitungssystems bei dieser Ausführungsform. Wie veranschaulicht, hat das Datenverarbeitungssystem einen Speicher 11, eine MPU (MicroProcessor Einheit) 12, eine Maus 13, eine Tastatur 14, einen I/O-Port 15, einen VRAM-Speicher (display data RAM) 16, eine Bildröhre 17, eine externe Speichereinheit 18 und einen Bus 19.
- Der Speicher 11 speichert das oben erwähnte Ausführungsprogramm (EXE-Datei), die Parameter-Datei, OS, Daten usw. Die MPU 12 verarbeitet Daten entsprechend dem im Speicher 11 enthaltenen Programm. Der I/O-Port 15 informiert die MPU 12 über Eingangssignale von der Maus 13 und der Tastatur 14. Der VRAM 16 speichert Bitmap-Daten, welche ein Darstellungsbild definieren. Die Bildröhre 17 bewirkt die Bildwiedergabe der in VRAM 16 gespeicherten Bitmap-Daten. Die externe Speichereinheit 18 enthält ein Festplattenlaufwerk, ein CD-ROM-Laufwerk oder dergleichen, wo das OS, die Bilddaten-Dateien (Bilddatei-Bibliothek), Audiodaten-Dateien (Audiodatei-Bibliothek) etc. gespeichert sind, und überträgt ein auszuführendes Programm und Daten zum Speicher 11. Der Bus 19 überträgt diese Daten.
- Die logische Struktur des Datenverarbeitungssystems ist in Fig. 3 dargestellt, in welcher sich die Hardware 31 in der untersten Schicht befindet und auf dieser Hardware 31 das OS 32 liegt. Als OS ist jegliches Operationssystem verfügbar, welches DLL (Dynamic Link Library) 33, DDE (Dynamic Data Exchange) 34 und OLE (Object Linking Embedding) 35 hat, wie MS-Windows (ein Erzeugnis der Microsoft Corporation) oder welches gleiche oder bessere Eigenschaften als MS-Windows hat.
- Die DLL 33 enthält eine Skrollfunktion, Spielfunktion, Rasterdisplayfunktion (Bitmap-Bilddatendarstellung), Vektordatenfunktion (Vektorbilddatendarstellung), Schichtmanagementfunktion, und Zeichenfunktion (Erzeugung eines Vektorbildes).
- Über die DLL 33 wird eine Mehrzahl von Zellen 36 unabhängig voneinander abgearbeitet. Die einzelnen Zellen 36 werden durch Ausführung desselben Ausführungsprogramms gebildet. Die Zellen 36 befinden sich logisch auf demselben Pegel, und jede Zelle managt (also Aufrufen, Schließen etc.) sich selbst oder andere Zellen 36. Auf dem OS gibt es kein Programm, welches die allgemeine Steuerung der Zellen vornimmt, welches also die Anzahl der Zellen, die gegenseitigen Beziehungen zwischen den Zellen, die Inhalte der Zellen usw. steuert. Jede Zelle 36 übt die folgenden Funktionen aus.
- (i) Funktion (Raster Öffnen) zum Zugriff auf eine Rasterbilddatei (Bitmapmuster-Bilddatei) 37 über das Interface und Abbildung eines Rasterbildes in einem Fenster. Zu diesem Zeitpunkt kann der anfängliche Darstellungsmaßstab durch Einstellen von Parametern frei gewählt werden.
- (ii) Funktion (Vektor Öffnen) zum Zugriff auf eine Vektor Bilddatei 38 über das Interface und Darstellung eines Vektorbildes. Zu diesem Zeitpunkt kann der anfängliche Darstellungsmaßstab durch Einstellen von später zu erläuternden Parametern frei gewählt werden.
- (iii) Funktion (Programmausführung) zum Aufrufen eines externen Programms wie ein Word Prozessor oder CAD, über OLE 35 oder OS 32. Wenn das externe Programm von der Art ist, welches durch Lesen einer durch einen Parameter spezifizierten Datei aufgerufen wird, kann dasselbe Programm in verschiedenen Formen benutzt werden. Es ist daher möglich, jede Software-Ressource zu benutzen, die mit dem im Betrieb befindlichen OS arbeitet.
- (iv) Scroll-Funktion unter Verwendung eines Durchlaufbalkens oder zum freien Durchlaufen (wobei die Durchlaufgeschwindigkeit und Durchlaufrichtung entsprechend der Richtung und dem Abstand des Maus-Cursors von der Mitte eines Fensters bestimmt wird), wenn spezifizierte Bilddaten eine solche Größe haben, dass sie in ein Fenster passen. Zu diesem Zeitpunkt laufen sämtliche überschriebene Grafikdaten synchron mit dem Hintergrund. Automatisches Durchlaufen lässt sich mit der DLL-Funktion bewirken.
- (v) Funktion zum Einstellen und Ändern einer Darstellungsschicht (die später noch erläutert wird). Ein Rasterbild (Bitmapbild) BMP und das Vektorbild TIF von n Schichten, welche einander willkürlich überlappen, kann dargestellt werden. Beispielsweise kann das Bild eines Map als Rasterbild dargestellt werden, und die Vektorbilder von Gebäuden können in einer willkürlichen Schicht gebildet werden, so dass beide Bilder einander überlappend gezeigt werden können, und somit das in Zelle 1 in Fig. 1 gezeigte Bild darstellbar ist. Weiterhin kann ein (noch zu beschreibender Schichtbalken 44), wie er an der Oberseite des Fensters gezeigt ist, angeklickt werden, um ein Schichtenmenü darzustellen, mit dem es möglich ist, das Vektorbild von n Schichten willkürlich einzustellen oder zu ändern, oder die Darstellung umzuschalten.
- (vi) Es kann eine bestimmte Sprachdatei (WAV, MID oder dergleichen) erzeugt und zum Tönen gebracht werden.
- (vii) Funktion zum Schließen einer Zelle. Eine Zelle kann sich selbst oder andere Zellen schließen.
- Es gibt auch eine Funktion, um ein Bild auf Rasterdaten oder Vektordaten, die in einem Fenster dargestellt werden, zu zeichnen und zu editieren. Da diese Bilder alle in Vektorform gezeichnet werden, sind Funktionen wie Kopieren, Bewegen, Abwandeln und Entfernen von Bildern möglich.
- Fig. 4 zeigt ein Schirmbildbeispiel eines Fensters 41 einer Zelle 36. Das Fenster 41 enthält an seiner Oberseite einen Fenstertitelbalken 42, der einen Fenstertitel angibt, einen Tool-Balken 43 zur Darstellung von Editier-Tools, einen Schichtbalken 44 zum Einstellen und Ändern der Darstellungsschicht, einen Zoom-Balken 45 zum Auf- und Abzoomen des dargestellten Bildes, einen Steuerbalken 46, einen Schließbalken 47 und einen Durchlauf- oder Rollbalken (scroll bar) 48.
- Es sei wiederum Fig. 3 betrachtet: Eine Parameterdatei 39 ist eine Datei in Textform, in welcher Aufrufinformation zum Aufrufen eines Ausführungsprogramms gespeichert ist. Jede Zelle 36 greift über das Interface (IF) auf die zugehörige Parameterdatei 39 zu, um den speziellen Modus und die Funktion auszuüben. Werden mehrere Zellen 36 über Links miteinander verbunden, dann arbeiten sie als vereinigte einzige Anwendung.
- Die Parameterdatei 39 enthält die folgende Information.
- (1) Fenstertitel.
- (2) Anfängliche Darstellungsposition eines darzustellenden Fensters.
- (3) Anfängliche Größe eines darzustellenden Fensters.
- (4) Gestaltung eines darzustellenden Fensters
- (i) Vorhandensein/Fehlen von Rahmenlinien
- (ii) Darstellung des Titels oder nicht
- (iii) Darstellung des Toolbalkens oder nicht
- (iv) Darstellungspriorität
- (5) Zelltyp
- (i) Rasterdarstellungstyp
- (ii) Vektordarstellungstyp
- (iii) Programmausführungstyp
- (iv) Rollausführungstyp
- (v) Schichtdarstellungstyp
- (vi) Tonwiedergabetyp
- (vii) Zellbeendigungstyp
- Für jedes im Fenster 41 gezeigte Bild kann über diese Parameterdatei 39 eine Aktion registriert werden, wie es im Zusammenhang mit Fig. 1 erläutert wurde.
- Im Beispiel nach Fig. 1 werden für die Symbole 1 und 4 der Gebäude in Zelle 1 neue Fenster geöffnet, um eine Aktion zu registrieren, bei welcher vergrößerte perspektivische Ansichten dargestellt werden, und danach erfolgt eine Operation zur Darstellung der vergrößerten perspektivischen Ansichten in den zugehörigen Fenstern durch Anklicken der Symbole 1 und 4 mit der Maus 13. Da diese Aktion für jedes Vektorbild registriert werden kann, sind Variationen von Prozessen möglich.
- Eine Aktion, die registriert werden kann, ist grundsätzlich eine solche, welche ein Durchführungsprogramm ausführen kann, die also eine Aktionszelle 36 ausführen kann. Registrierbare Aktionen sind folgende:
- (1) Rasteröffnungsaktion (Raster Öffnen).
- (2) Vektoröffnungsaktion (Vektor Öffnen).
- Diese beiden Aktionen beinhalten generell eine Aktion zur Öffnung eines neuen Fensters.
- (3) Programmdurchführung (Ausführung eines Programms).
- (4) Automatische Rollfunktion (Rollen!).
- Diese Aktion rollt automatisch das dargestellte Bild von einem durch einen Parameter spezifizierten Bild zu einem anderen durch einen Parameter spezifizierten Bild oder längs einer kontinuierlichen geraden Linie.
- (5) Schichtdarstellungsaktion (Schicht wählen).
- Diese Aktion stellt die spezifizierte Schicht dar.
- (6) Tonerzeugungsaktion (Spiele, Ton)
- Diese Aktion spielt eine spezifizierte Sprachdatei, um Töne abzuspielen.
- (7) Zellschließaktion (Zelle schließen).
- Diese Aktion schließt die spezifizierte Zelle (Fenster). Eine Zelle kann sich selbst schließen oder irgendeine Anzahl anderer Zellen schließen. Es ist auch möglich, alle Zellen zu schließen.
- Die Registrierung einer Aktion wird jedes Mal durchgeführt, wenn ein Vektorbild auf ein Fenster gezeichnet wird. Die Registrierung einer Aktion kann auch unterbleiben, und dann wird das Bild ein einfaches Bild.
- Aktionen können auch für eine Mehrzahl von Bildern im Fenster einer Zelle registriert werden. Weiterhin kann eine Mehrzahl von Aktionen für ein einziges Bild registriert werden. Beispielsweise ist es möglich, eine Zelle für ein einzelnes Bild zu öffnen, um ein Rasterbild darzustellen und das Bild automatisch in ein anderes Bild überzurollen, während Töne abgespielt werden. Weiterhin kann der Dateiname einer einmal registrierten Parameterdatei wiederbenutzt werden, um die Aktion selbst irgendwohin zu kopieren.
- Die einzelnen Zellen sind konform mit der DDE-Funktion, welche das OS benutzt. Diese Funktionen erlauben die Durchführung der folgenden verschiedenen Informationen in Realzeit zwischen Zellen und zwischen einer externen Anwendung und jeder Zelle.
- i) Wenn Koordinatenwerte in eine Zelle eingegeben werden, dann wird die Darstellungsposition auf die Koordinatenposition geschaltet (die Position kann durch eine äußere Anwendung durch irgendeine Art von Aktion aufgerufen werden).
- ii) Wenn ein Bildtyp, Bildattribut oder eine Darstellungsposition eingegeben werden, wird das spezielle Bild automatisch an der angegebenen Position gezeigt.
- iii) Die Bildgröße, die Darstellungsposition und die Bildgestaltung können extern geändert werden.
- iv) Die Darstellungsschicht kann extern umgeschaltet werden.
- v) Der Darstellungsmaßstab kann extern geändert werden.
- vi) Das automatische Rollen kann extern aufgerufen werden.
- vii) Andere verschiedene Steuerfunktionen können extern eingegeben werden, um eine Zellenfeinsteuerung zu bewirken.
- i) Bei Aufforderung werden die derzeitigen Darstellungskoordinaten aufgrund der Spezifikation der DDE nach außen gegeben.
- ii) Der Bildtyp, das Bildattribut, die Schichtzahl usw. des durch die Maus angegebenen (angezeigten) Bildes werden ausgegeben.
- iii) Die detaillierten Attribute eines Fensters werden ausgegeben.
- iv) Die momentane Darstellungsschichtzahl wird nach außen gegeben.
- v) Der momentane Darstellungsmaßstab wird nach außen gegeben.
- vi) Der weitere detaillierte Status jeder Zelle wird nach außen gegeben.
- Die einzelnen Zellen sind ebenfalls konform mit der regulären OLE- und einer OLE2-Funktion, welche beide von dem OS unterstützt werden. Diese Funktionen erlauben, dass eine externe Anwendung und einzelne Zellen objektverknüpfte Verarbeitung durchführen. Es wird also möglich, eine Zelle aufzurufen oder ein Wortprozessorschirmbild oder eine Tabelle aus einer anderen Anwendung heraus in eine Zelle einzubauen, um dynamische Bilder zu erzeugen usw.
- Es sei nun der Betrieb des so gebildeten Datenverarbeitungssystems für den Fall beschrieben, wo Zellen sequentiell aufgerufen werden, wie es in Fig. 1 mit Bezug auf die Fig. 5 bis 10 gezeigt ist.
- Zuerst sei angenommen, dass eine ein Rasterbild enthaltender Abbildung auf dem Fenster der Zelle 1 dargestellt wird, wie es in Fig. 5A zeigt.
- In diesem Fall wird das Vektorbild (Symbol 1) eines Gebäudes 1 auf einer willkürlichen Schicht eines Rasterbildes unter Verwendung der Maus 13 gezeichnet, wie es Fig. 5B zeigt. Alternativ kann ein das Gebäude 1 bezeichnendes Symbol aus der Bibliothek gewählt werden und an eine gewünschte Position platziert werden.
- Die DLL stellt die Zeichnung des Vektorbildes im Fenster (einschließlich der Wahl eines Symbols für die Bibliothek) fest und informiert die Zelle 1 von diesem Vorgang. Um eine Aktion einem Vektorbild zuzuordnen, beginnt die Zelle mit einem Aktionseinstellprozess, wie es Fig. 6 zeigt. Zuerst wird ein Aktionseinstellschirmbild gemäß Fig. 7 dargestellt (Schritt S1). Dann erscheint die Bezeichnung des Parameterdateinamens, des Titels eines neuen zu öffnenden Fensters, der Zeitpunkt für das Öffnen des Fensters, eine Aktion, der Name der Bilddatei, wo ein darzustellendes Bild gespeichert ist, ob das derzeit offene Fenster geschlossen werden soll oder nicht, der Name der Musikdatei, in welcher die abzuspielenden Töne gespeichert sind usw. entsprechend dem Inhalt des Aktionseinstellschirmbildes (Schritt S2).
- Wenn der Parameterdateiname ZELLE2 lautet und das Rasterbild der äußeren perspektivischen Ansicht des Gebäudes 1 in einer Datei GAIKAN1.BMP im Verzeichnis RASTER z. B. auf dem Laufwerk C gespeichert ist, dann wird "C:\RASTERAIKAN1.BMP" als Bilddateiname angegeben und "Öffnen eines neuen Fensters" als Aktion angegeben. Ist die perspektivische Außenansicht des Gebäudes 1 in einem Vektorbildformat in einer vorbestimmten Datei gespeichert, dann sollte der Name dieser Datei angegeben werden.
- Wenn die Einstellung fertig ist, wird das Fenster geschlossen. Die DLL speichert das Symbol 1 und die im Schritt S2 eingestellte Parameterdatei im Speicher 11 mit gegenseitiger Zuordnung (Schritt S3).
- Die Fensterdarstellung ergibt sich in diesem Stadium gemäß Fig. 5B. Wenn das Symbol 1 in diesem Zustand zweimal angeklickt wird, dann stellt die DLL den Vorgang fest und der in Fig. 8 veranschaulichte Programmablauf beginnt. Zuerst wird festgestellt, ob zu dem doppelt angeklickten Symbol 1 (Schritt T1) eine Parameterdatei gehört. Da in diesem Fall die Parameterdatei ZELLE2 vorhanden ist, wird sie ausgelesen (Schritt T2). Dann wird festgestellt, ob die Operation der Angabe des Vektorbildes (Doppelklick) zu der Operation passt, welche im Feld "WANN?" der Parameterdatei eingestellt ist (Schritt T3). Weil in diesem Fall beide zusammenpassen, wird ein Programm entsprechend dem Inhalt der Parameterdatei ZELLE2 (Schritt T4) aufgerufen. Als Folge öffnet sich ein neues Fenster an der Position, welche zum Inhalt der Parameterdatei passt. Die vergrößerte perspektivische Ansicht (Rasterbild) des Gebäudes 1, welche in der Datei GAIKAN1.BMP gespeichert ist, wird dargestellt, wobei am Titelbalken dieses Fensters "ZELLE2" erscheint. In diesem Zustand existieren zwei Zellen, die Zelle 1 und die Zelle 2 gemeinsam.
- Die Zelle 2 wird nicht von der Zelle 1 über einen Rückrufprozess aufgerufen. Mit anderen Worten werden Zelle 1 und Zelle 2 jeweils durch unabhängige EXE Dateien gebildet und unabhängig aufgerufen und ausgeführt. Es ist daher unnötig, die Rückkehradresse zur Zelle 1 und den Wert des Registers zu dem Zeitpunkt zu sichern, wo Zelle 2 geöffnet wird. Dieses Schema kann die Zeit verringern, welche für die Aktionen Sichern und Wiederherstellen benötigt wird, und damit den gesamten Prozess beschleunigen.
- Als Nächstes bewegt der Benutzer den Cursor auf dem dargestellten Bild der Zelle 2 und gibt Buchstaben "Querschnitt" von der Tastatur 14 ein und zeichnet ein transparentes quadratisches Vektorbild (Symbol 2) über die Buchstaben. In diesem Zustand wird das Vektorbild über das Rasterbild geschrieben. Die DLL informiert die Zelle 2 von dieser Zeichnungsaktion, und der Programmfluss gemäß Fig. 6 wird begonnen, welcher die Aktion des Schirmbilds 6. (Schritt S1) darstellt. Entsprechend dem dargestellten Inhalt stellt der Benutzer den Parameterdateinamen sowie den Namen der Datei, in welche die Querschnittsansicht des Gebäudes 1 gespeichert ist usw., ein (Schritt S2). Dann werden die Bilddatei des Symbols 2 und die Parameterdatei in gegenseitiger Zuordnung gespeichert (Schritt S3).
- Gleichermaßen gibt der Benutzer die Buchstaben "Draufsicht" (Symbol 3) auf dem dargestellten Bild der Zelle 2 über die Tastatur 14 ein und zeichnet ein transparentes quadratisches Bild über die Buchstaben. Diese Zeichnungsaktion wird in Schritt S1 in Fig. 6 festgestellt, und die Aktion der Schirmbildeinstellung wird dargestellt (Schritt S1). Wenn die richtigen Parameter eingestellt sind (Schritt S2), dann werden Symbol 3 und die Parameterdatei in gegenseitiger Zuordnung gespeichert (Schritt S3).
- Wenn nach der o. g. Einstellung das Symbol 3 oder die Kette der Zeichen "Querschnitt" zweimal angeklickt wird, wird die Zelle 3 geöffnet und zeigt den Querschnitt des Gebäudes 1. Wird ein Symbol 4 oder die Kette von Zeichen "Draufsicht" zweimal angeklickt, dann wird die Zelle 5 geöffnet und zeigt die Draufsicht auf das Gebäude 1.
- Das Vektorbild (Symbol 4) eines Gebäudes 2 wird gleichermaßen auf das Schirmbild der Zelle 1 gezeichnet. Dann wird die zugehörige Aktion, also Öffnen eines Fensters, angegeben, und der Name der Datei, welche die perspektivische Ansicht des Gebäudes 2 enthält, wird als Name der Bilddatei genannt. Die andere Einstellung wird gleichermaßen durchgeführt.
- Nachdem die Einstellung durchgeführt ist und das Parametereinstell-Schirmbild geschlossen ist, wird durch doppeltes Anklicken des Symbols 4 ein neues Fenster geöffnet, welches die vergrößerte perspektivische Ansicht des Gebäudes 2 zeigt.
- Auf das gezeigte vergrößerte perspektivische Bild des Gebäudes 2 wird ein transparentes Vektorbild als Symbol 5 gezeichnet, und dann wird als eine zum Symbol 5 gehörige Aktion ein Befehl zum Aufrufen eines Wortprozessors als externes Programm eingestellt.
- Wird nach Beendigung der Einstellung das Symbol 5 zweimal angeklickt, dann wird das Wort "Prozessorprogramm" über die OLE- Funktion aufgerufen. Der Benutzer kann dann unter Verwendung dieses Wordprozessors die gewünschte Zeicheninformation vorbereiten. Weiterhin zeichnet der Benutzer ein Vektorbild auf das vorbereitete Dokument, gibt die Öffnung eines neuen Fensters als Aktion für dieses Vektorbild an und benennt die Datei, welche die Fotografie des Architekten des Gebäudes 2 als Bildinformation enthält. Danach wird beim zweimaligen Anklicken des Symbols 6 das Bild dieses Designers gezeigt.
- Es ist möglich, in der oben beschriebenen Weise die Korrelation zwischen einer Mehrzahl von Zellen, wie sie Fig. 1 zeigt, einzustellen.
- Wie aus dem oben Stehenden hervorgeht, kann diese Ausführung leicht ein Datenverarbeitungssystem aufbauen, welches die Möglichkeit bietet, dass eine Mehrzahl von Zellen gleichzeitig existiert, indem man ein willkürliches Vektorbild auf einem Fenster einer Parameterdatei zuordnet und ein Ausführungsprogramm entsprechend der Parameterdatei aufruft, welche dem doppelt angeklickten Vektorbild zugeordnet ist; ein solches System erlaubt es, dass diese Zellen insgesamt als eine einzige Anwendung funktionieren. Weiterhin besteht jede Zelle aus einem Ausführungsprogramm, welches eine Basisoperation, wie das Öffnen oder Schließen eines Fensters durchführt, und es gibt keinen Boss (Managerprogramm) im OS 32, welches die einzelnen Zellen systematisch managen würde. Daher können Durchführungsprogramme mit relativ kleiner Größe geschrieben werden, so dass eine schnellere Arbeitsgeschwindigkeit erreicht wird. Mit anderen Worten hat ein normales Programm eine Pyramidenstruktur und einen Boss, welcher systematisch eine Mehrzahl laufender Programmpositionen an der Spitze der Pyramidenstruktur managt. Bei dieser Ausführungsform managen sich jedoch die einzelnen Zellen gegenseitig, und es gibt kein mit dem Boss vergleichbares Managerprogramm.
- Da dieses Datenverarbeitungssystem externe Programme benutzen kann, wie etwa einen Word Prozessor, eine Datenbank, Tabellenkalkulation und CAD sowie Daten über das OLE des OS, hat es eine größere Allgemeinverwendbarkeit. Beispielsweise können Rasterdaten, die auf einer handelsüblichen CD-ROM gespeichert sind, für eine Landkarte benutzt werden, die Schichtdarstellungsfunktion kann benutzt werden, um das Vektorbild einer Verkehrsampel an jedem Schnittpunkt auf einer Schicht 1 zu platzieren, das Vektorbild unterirdischer Leitungen auf eine Schicht 2, das Vektorbild einer U-Bahn-Karte auf eine Schicht 3, und von einer dieser Schichten kann auf eine andere umgeschaltet werden, oder sie können auf der Karte übereinander gelegt werden.
- Mit der jedem Vektorbild zugeordneten Aktion Raster Öffnen ist es möglich, leicht eine solche Anwendung vorzubereiten, um das Foto einer Verkehrsampel beim zweimaligen Anklicken des Bildes dieser Ampel darzustellen, den Namen einer unterirdischen Leitung, ihren Querschnitt und die interne Verschaltung beim doppelten Anklicken des Bildes dieser Untergrundleitung darzustellen, oder die Gestaltung von Zügen und Fahrplänen beim doppelten Anklicken der U-Bahn-Streckenkarte darzustellen, ohne dass besondere Programmiergeschicklichkeit oder Kenntnis erforderlich wäre.
- Wenn auch bei der oben beschriebenen Ausführungsform der Zeitpunkt der Ausführung einer Aktion durch den Zeitpunkt des Doppelklickens bestimmt wird, kann auch zum Zeitpunkt der Durchführung einer anderen Operation übergewechselt werden, um ein Vektorbild anzugeben, etwa den Zeitpunkt eines einfachen Klickens.
- Für das Schirmbildrollen oder dergleichen kann bezüglich des auf einem Fenster gezeichneten Vektorbildes die zugehörige Aktion ausgeführt werden, "wenn das gesamte Vektorbild im Fenster erscheint", "wenn ein Teil im Fenster erscheint", "wenn das gesamte Vektorbild verschwindet (sich aus dem Bild herausbewegt)", "wenn ein Teil verschwindet" usw. In diesem Fall sollten diese Bedingungen dem Feld "Wann?" auf dem Aktionseinstellschirmbild nach Fig. 7 eingestellt werden.
- Anhand von Fig. 9 sei nun der Betrieb zu dem Zeitpunkt beschrieben, wo das dargestellte Bild infolge der obigen Einstellungen verschoben wird.
- Wenn beispielsweise ein Bild gerollt wird, führt jede Zelle jedes Mal, wenn der Inhalt des VRAM 16 neu geschrieben wird, den in Fig. 9 gezeigten Flussablauf aus. Zuerst erhöht jede Zelle die Positionsinformation jedes Vektorbildes von der DLL (Schritt U1). Die Zahl n jedes Vektorbildes im Fenster wird initialisiert (Schritt U2). Dann wird bestimmt, ob jedem Vektorbild eine Parameterdatei zugeordnet ist (Schritt U3). Gibt es eine solche Parameterdatei, dann wird bestimmt, ob der im Feld "Wann?" eingestellte Inhalt in der zugehörigen Parameterdatei zu dem festgestellten Inhalt passt (Schritt U4). Liegt eine Übereinstimmung vor, dann wird eine im Feld "Aktion" in der Parameterdatei eingestellte Aktion ausgeführt (Schritt U5). Dann wird bestimmt, ob der Prozess für alle Vektorbilder abgeschlossen ist (Schritt U6).
- Es sei nun angenommen, dass im Feld "Wann?" in der Parameterdatei der Zelle 2 in Fig. 1 eingestellt worden ist "wenn ein Teil verschwindet", und dass im Feld "Aktion" eingestellt ist "Öffne ein neues Fenster". Wenn in diesem Fall das gezeigte Bild der Zelle 1 verschoben wird und das Symbol 1 den Rahmen des Fensters überlappt, dann verschwindet ein Teil dieses Symbols, so dass die Zelle 2 aufgerufen wird, ein neues Fenster zu öffnen.
- Die Aufrufzeit ist bei dieser Ausführungsform nicht auf den oben erläuterten Typ beschränkt, sondern es kann auch eine Verzögerungszeit wie etwa "10 Sekunden später" bei Doppelklicken oder "eine Minute nach dem Verschwinden des gesamten Bildes" eingestellt werden. Wenn in diesem Fall die Entscheidung im Schritt T1 im Flussdiagramm nach Fig. 8 oder die Entscheidung im Schritt U3 im Flussdiagramm nach Fig. 9 lautet "Ja", dann wird festgestellt, ob eine Verzögerungszeit im Feld "Wann?" in der Parameterdatei eingestellt ist. Ist dort keine Verzögerungszeit eingestellt, dann geht das Flussdiagramm weiter zum Schritt T2 oder zum Schritt U5. Ist andererseits die Verzögerungszeit eingestellt, dann beginnt eine Zeitmessung, und wenn die angegebene Verzögerungszeit abgelaufen ist, geht das Flussdiagramm auf Schritt T3 oder U5 über.
- Man kann auch das dargestellte Bild entlang einer willkürlichen, im Fenster gezeigten Linie (Vektorbild) automatisch Rollen lassen und ein neues Fenster öffnen, wenn das gesamte Bild verborgen ist. Durch Bezeichnung der Linie als eine transparente Linie, kann ein Programm automatisch ausgeführt werden, ohne dass ein Betrachter die Linie sehen müsste. Es ist beispielsweise einfach, ein solches Programm wie ein erstes Fenster in einem Bild zu zeigen, automatisch durchzuführen, es dann Rollen zu lassen und dieses Fenster nach Beendigung des Rollens zu schließen und das nächste Fenster zu öffnen, das zweite Fenster zu rollen und nach dem Beenden des Rollens das nächste Fenster zu öffnen, um wiederum das erste Bild zu zeigen.
- Die bisherige Beschreibung dieser Ausführungsform war auf den Fall des Öffnens eines neuen Fensters als Aktion abgestellt. Für diesen Fall ist die Beziehung zwischen den Zellen in den Fig. 10A und 10B veranschaulicht. 10A zeigt die Dateistruktur und den Fluss der Operationen, wenn eine neue Zelle aufgerufen wird, um ein Rasterbild in ihrem Fenster zu zeigen und Fig. 10B zeigt die Dateistruktur und den Fluss der Operationen, wenn eine neue Zelle aufgerufen wird, um ein Vektorbild in ihrem Fenster zu zeigen. Es können auch andere Aktionen in einer Parameterdatei angegeben und in gleicher Weise durchgeführt werden.
- Fig. 10C zeigt den Fall, wo eine andere Anwendung in einem Fenster aufgerufen wird. Im Einzelnen wird die Parameterdatei durch das Vektorbild in Zelle 1 angegeben, und ein anderes Programm, wie etwa ein Word Prozessor, eine Datenbank oder Tabellenkalkulation wird entsprechend dem Inhalt der Parameterdatei aufgerufen.
- Fig. 10D zeigt den Fall, wo ein in einem Fenster gezeigtes Bild in demselben Fenster gerollt wird. Speziell wird die Parameterdatei von dem Vektorbild (Vektor) in Zelle 1 angegeben, und das gezeigte Bild (Raster und/oder Vektor) wird entsprechend dem Inhalt dieser Parameterdatei gerollt.
- Fig. 10E zeigt den Fall, wo eine aktuell darzustellende Schicht in einem Fenster aus einer Mehrzahl von in diesem Fenster darstellbaren Schichten ausgewählt wird und die ausgewählte Schicht in dem Fenster gezeigt wird. Speziell wird die Parameterdatei von dem Vektorbild (Vektor) der Zelle 1 angegeben und die im Fenster der Zelle. 1 darzustellende Schicht wird ausgewählt und entsprechend dem Inhalt der Parameterdatei gezeigt.
- Fig. 10F zeigt den Fall, wo ein Prozess der Darstellung von Tönen bei irgendeinem Prozess in einem Fenster durchgeführt wird. Speziell wird die Parameterdatei durch das Vektorbild der Zelle 1 angegeben, und eine vorbestimmte Musikdatei wird gelesen, um entsprechend dem Inhalt der Parameterdatei Töne wiederzugeben.
- Fig. 10G zeigt den Fall, wo ein Fenster sich selbst schließt. Speziell wird die Parameterdatei vom Vektorbild der Zelle 1 angegeben, und diese Zelle schließt sich entsprechend dem Inhalt der Parameterdatei selbst.
- Es kann auch eine andere Aktion eingestellt werden, wie etwa "Schließen anderer Fenster" oder "Öffnen eines neuen Fensters und selbst schließen".
- Bei der oben beschriebenen Ausführungsform werden Vorgabewerte unmittelbar für die Position und Größe eines Fensters benutzt. Es können jedoch auch einige Abwandlungen der Auslegung vorgenommen werden, damit der Benutzer andere Parameter als die oben genannten verändern kann, etwa die anfängliche Bildposition, die anfängliche Größe und die Gestaltung eines Fensters und der Zellentyp. Wenn in diesem Fall beispielsweise der Benutzer auf den Kontrollbalken 46 in einem Fenster gemäß Fig. 4 klickt, dann werden die Parameter zur Einstellung und Veränderung des Schirmbildes gezeigt. Entsprechend dem, was auf dem Schirm zu sehen ist, werden Parameter eingestellt oder geändert und dann in einem Textformat in der Parameterdatei gespeichert.
- Wenn im Beispiel nach Fig. 1, wo das Symbol 4 in Zelle 1 liegt, das Symbol 4 in die Zelle 3 verschoben werden soll, dann soll die Bewegung des Symbols 4 in die Zelle 3 unter Verwendung der Vektorzeichnungsfunktion der DLL des OS erfolgen. In diesem Fall wird die Beziehung zwischen dem Symbol 4 und der durch Angabe des Symbols 4 angegebenen Aktion nicht verändert, wenn nicht der Name der zum Symbol 4 gehörigen Datei geändert wird. Daher wird durch doppeltes Anklicken des Symbols 4 in Zelle 3 das Fenster der Zelle 5 geöffnet.
- Obgleich bei dieser Ausführung Symbolen in jeder Zelle Parameterdateien zugeordnet sind, kann eine Funktion ergänzt werden, welche eine Parameterdatei einem Vektorbild (im Folgenden als "Button" bezeichnet) unabhängig von einer Zelle zuordnet und beim doppelten Anklicken eines Buttons ein Durchführungsprogramm entsprechend der diesem Button zugeordneten Parameterdatei ausführt.
- Im Folgenden wird der Prozess der Bildung eines Buttons, der Einstellung von Parametern und der Durchführung eines Ausführungsprogramms erläutert.
- Um einen Button zu bilden, bestimmt der Benutzer dessen Gestalt unter Verwendung der Zeichenfunktion des OS. Der Button kann ein Icon oder eine Zeichenkette sein. Zur Speicherung einer Aktion, die beim Klicken dieses Buttons ausgeführt werden soll, wird der Aktionseinstellmodus eingestellt, um das Aktionseinstellschirmbild zu zeigen.
- Aktionen, welche Buttons zugeordnet werden können, umfassen 1) Aktion Raster Öffnen, 2) Aktion Vektor Öffnen, 3) Programm Durchführen, 4) Aktion Automatischer Durchlauf, 5) Aktion Schicht Darstellen, 6) Aktion Ton Erzeugen und 7) Aktion Zelle Schließen. Der Benutzer wählt und speichert eine oder mehrere Aktionen. Bezüglich Aktionen wie Aufrufen einer Zelle, Darstellung einer Bitmap und von Vektorbildern sind der Parameterdateiname, der Bilddateiname, der Musikdateiname etc., welche zur Ausführung der Aktionen benötigt werden, bezeichnet. Weiterhin kann ein Button so gestaltet sein, dass er von einem Vektorbild in einer Zelle über die zugehörige Parameterdatei aufrufbar ist. Die Struktur erlaubt das freie Erstellen einer Anwendung durch Betätigung eines Buttons zum Aufrufen einer neuen Zelle oder Manipulieren eines Symbols in einer Zelle, um den zugehörigen Button zu lesen. Ferner kann dieser Button unter Verwendung der Editierfunktion des OS kopiert oder an eine andere Stelle in einem Verzweigungsdiagramm verschoben werden. In diesem Fall werden die zu diesem Button gehörige Zelle und der Button gleichzeitig kopiert und verschoben.
- Gemäß der Erfindung ist wie oben beschrieben, einem Symbol oder Button eine Parameterdatei zugeordnet, so dass eine von dem Parameter definierte Aktion durch Angabe des Symbols oder Buttons ausgeführt wird. Man kann daher ein Vektorbild einer Aktion zuordnen, um eine Anwendung einfach zu erstellen. Da ein Ausführungsprogramm lediglich eine Grundfunktion ausführt, wie etwa das Öffnen oder Schließen eines Fensters, braucht sie nur eine relative geringe Größe zu haben, so dass eine schnelle Ausführungsgeschwindigkeit erhalten werden kann.
- Wenn auch bei dieser Ausführungsform eine Maus als Beispiel für ein Eingabegerät, um auf ein Vektorbild zu zeigen, angeführt wurde, kann genauso gut ein anderes Eingabegerät wie ein Track Ball oder ein Joy Stick benutzt werden. Der Bildschirm ist nicht auf eine Katodenstrahlröhre beschränkt, sondern es kann auch irgendeine andere Vorrichtung wie etwa ein LCD-Schirm benutzt werden. Die Erfindung ist nicht auf die oben beschriebene Ausführungsform beschränkt, sondern kann in verschiedenen anderen Formen abgewandelt und angepasst werden.
- Es sei nun eine Programmarchitektur beschrieben, mit der sich die Erfindung verwirklichen lässt. Kurz gesagt, kann es die Erfindung einem Benutzer ermöglichen, auf einfache Weise hochkarätige Anwendungen zu erstellen, und sie kann auch die Programmausführungsgeschwindigkeit verbessern.
- Die erfindungsgemäße Architektur wird als "Bossless"-Architektur bezeichnet, weil jedes Programm-Modul auf gleicher Ebene mit anderen Programm-Modulen steht. Es gibt kein Modul, welches den Gesamtbetrieb des Programms steuert (also keinen Boss). Ein Vergleich der bosslosen Architektur mit einer Boss-Architektur ist in Fig. 11 veranschaulicht. Fig. 11A zeigt eine schematische Ansicht einer Anwendung 150, die auf einer Boss-Architektur basiert. Die Architektur hat in dieser Form eine hierarchische Struktur, und ein Boss-Modul 152 steuert eine Mehrzahl von Modulen, wie die Module 154-157. Zur grafischen Veranschaulichung der Befehls- und Verknüpfungsketten verlaufen ausgezogene Linien vom Boss zu den einzelnen Modulen. Wenn ein Programm-Modul auf der untersten Ebene (also das Modul 157 am Ende einer Verzweigung) ein Programm ausführt, dann müssen ausgezogene Linien (also Verknüpfungen) 151, 153 und 158 vom Boss zu diesem Programm- Modul bestehen.
- Fig. 11B zeigt eine schematische Darstellung einer Anwendung 160, die auf der erfindungsgemäßen bosslosen Architektur beruht.
- Die Anwendung 160 umfasst eine Mehrzahl von Programm-Modulen, wie die Module 162-165. Jedes Programm-Modul (bei der Erfindung als "Zelle" bezeichnet) ist im hierarchischen Sinne dasselbe wie die anderen Zellen. Zellen werden miteinander auf neuartige Weise verknüpft, wobei keine Information über Historie oder Verknüpfungen erhalten bleiben muss. Jedes Link ist unabhängig. Beispielsweise besteht keine Notwendigkeit, dass Links gleichzeitig aktiv sein müssen. Jedes Link ist direkt, d. h. zwei Zellen können unmittelbar miteinander verknüpft sein, ohne dass ein oder mehrere Zwischenlinks benutzt werden müssten. Beispielsweise können die Zellen 162 und 164 unmittelbar unter Verwendung der Leitung 176 miteinander verknüpft sein, anstatt mit Hilfe der Leitungen 167 und 168 und einer Zwischenzelle. Eine Anwendung kann erstellt werden durch Definieren der beteiligten Zellen und Verwendung der neuen Verknüpfung gemäß der Erfindung. Dies ist unterschiedlich von der Situation nach Fig. 11A, wo die Verknüpfung vom Boss zu dem Modul auf der untersten Ebene die ganze Zeit aktiv sein muss, so lange das Modul ein Programm ausführt. In Fig. 11B dienen gestrichelte Linien zur grafischen Darstellung der erfindungsgemäßen neuen Interaktion.
- Fig. 12 zeigt die Struktur einer Anwendung 200 unter Benutzung der erfindungsgemäßen bosslosen Architektur. Die Anwendung 200 enthält eine Mehrzahl von Zellen, die mit C1-C4 bezeichnet sind, in einen RAM-Speicher eingegeben sind und dort Programme ausführen. Zu jeder Zelle gehört eine Datei (mit D1-D4 bezeichnet), welche als DNA-Datei bezeichnet wird und Information der Zelle enthält. Der Ausdruck "DNA" wird hier analog zur biologischen Beziehung zwischen einer lebenden Zelle und ihrer DNA benutzt. Zu einem gewünschten Zeitpunkt kann die Zelle C1 Anweisungen (DSF-Anweisungen genannt) unter Verwendung eines als digitales Verschiebungsfunktions-("DSF") Protokolls bezeichneten Protokolls an die Zelle C2 senden. Die Zelle C2 führt diese Anweisungen aus. Nachstehend seien die Detailstrukturen der Zellen, DNA- Dateien und des DSF-Protokolls beschrieben.
- Ein wichtiger Unterschied der Erfindung gegenüber der üblichen Kommunikation zwischen Prozessen besteht darin, dass die Zelle C2 keine Information über den Ursprung dieser Anweisungen festhält, es wird also keine Historie der Zwischen-Prozess- Kommunikation festgehalten. Sobald also die Zelle C1 mit dem Überschreiben von DSF-Anweisungen zur Zelle C2 fertig ist, besteht keine weitere Verknüpfung zwischen den Zellen C1 und C2. Die Zelle C2 kennt bei ihrer Programmdurchführung den Ursprung dieser Anweisungen nicht. Es ist möglich, dass die Zelle C1 später wieder eine Kommunikation mit der Zelle C2 herstellt, indem sie einen anderen Satz von Anweisungen an C2 schickt. Jedoch hängt diese Kommunikation nicht mit der früheren Kommunikation zusammen und endet, sobald der neue Satz von DSF-Anweisungen gesendet ist.
- Jede der Zellen kann DSF-Anweisungen an irgendeine andere gewünschte Zelle schicken. So kann die Zelle C1 Anweisungen an die Zelle C3 schicken. Ähnlich kann die Zelle C2 Anweisungen an Zelle C4 schicken, welche ihrerseits Anweisungen an C1 schicken kann. Zelle C3 kann ebenso Anweisungen an Zelle C1 schicken. Bei diesem Beispiel sind die Zellen C1 und C2 kein Boss für C4. Wenn beispielsweise C4 DSF Anweisungen ausführt, besteht keine Notwendigkeit, irgendwelche Links (Verknüpfungen) zwischen den Zellen C1 und C2 und zwischen den Zellen C2 und C4 aufrechtzuerhalten. Zelle C4 muss nicht Ergebnisse der Ausführung an irgendwelche anderen Zellen in der Anwendung 200 berichten. Links werden nur während der Zeit der Übertragung von DSF Anweisungen aufrechtgehalten. Weiterhin könnte das Überschreiben von Anweisungen von Zelle 1 zu Zelle 2 unabhängig vom Überschreiben von Anweisungen von Zelle C2 zu Zelle C4 sein. Außerdem führt Zelle C4 lediglich Anweisungen aus, ohne sich darum zu kümmern, wo sie herkommen. In Fig. 12 sind gestrichelte Linien verwendet, um die neue Beziehung zwischen Zellengrafik darzustellen.
- Wie oben erläutert wurde, besteht eines der Probleme konventioneller Architektur darin, dass eine große Menge von Verknüpfungsinformationen festgehalten werden muss, so dass die Ausführung von Programmen verlangsamt wird. Bei der erfindungsgemäßen Architektur besteht keine Notwendigkeit, Speicherwerte in einem Datenstapel aufzuheben und wieder aufzurufen, wenn Zelle C2 von Zelle C1 überschriebene Anweisungen ausführt. Es ist nicht erforderlich, Zellen in einer zentralen Datenbank vor dem Aussenden von Befehlen zu registrieren. Es ist auch nicht notwendig, Nachrichten zum Bericht eines Ausführungsstatus hin und zurückzuschicken. Aus diesem Grund kann die Anwendung schnell ausgeführt werden.
- Weil es praktisch keine übergeordnete Steuerung bei der Verknüpfung von Programmen gibt, ist es möglich, eine Anwendung unter Verwendung einer großen Anzahl kleiner Zellen zu erstellen. Bei einer bevorzugten Ausführungsform ist die Größe der Zellen gering, also typischerweise um 10 Kilobytes. Die Funktion jeder Zelle ist genau definiert und auf sie konzentriert. Daher besteht Flexibilität beim Erstellen von Anwendungen, und die Effizienz der Durchführung wird verbessert.
- Eine Zelle kann auch eine andere Zelle aufrufen (z. B. kann Zelle C1 Zelle C5 aufrufen, wie durch die doppelte gestrichelte Linie gezeigt ist), wenn diese Zelle nicht bereits in den RAM geladen ist und dort ihr Programm laufen lässt. Die aufgerufene Zelle (z. B. Zelle C5) könnte nach dem Aufrufen völlig unabhängig von der aufrufenden Zelle (d. h. Zelle C1) sein. Somit ist die aufrufende Zelle nicht der Boss der aufgerufenen Zelle und die beiden Zellen liegen hierarchisch auf derselben Ebene. Dies ist vollständig verschieden vom Stande der Technik, wo ein aufrufender Programm-Modul sich auf einer hierarchisch anderen Ebene als der aufgerufene Programm-Modul befindet.
- Wie nachstehend erläutert, kann eine Zelle als eine "EXE"-Datei implementiert werden (in der MS DOS oder MS Windows Umgebung) und kann zur Programmausführung in bekannter Weise entsprechend der Betriebsumgebung in einen RAM-Speicher geladen werden. Die der Zelle zugeordnete DNA-Datei kann ebenfalls in den RAM- Speicher geladen werden. Die aufgerufene Zelle nimmt die in ihrer DNA-Zelle gespeicherten Attribute auf. Es ist ebenso möglich, die DNA-Datei zu modifizieren, wenn die Zelle aufgerufen ist oder während sie arbeitet, wenn man in die Datei schreibt (die eine ASCII Datei sein könnte). Damit bildet die Architektur einen flexiblen Weg, Anwendungen zu erstellen.
- Aus Fig. 12 lässt sich sehen, dass die Bosslose Architektur eine flache Struktur anstatt einer hierarchischen Struktur gemäß den Fig. 22 und 11A hat. Jede der Zellen C1-C4 stellt ein unabhängig ausführbares Programm dar, welches sich auf der gleichen hierarchischen Ebene wie andere ausführbare Programme befindet. Keine Zelle wirkt als Boss für andere Zellen. Daher wird diese Architektur als Bosslose Architektur bezeichnet.
- Die Architektur erlaubt es, dass eine Anwendung an irgendeiner Zelle beginnt. Andere Zellen können je nach Notwendigkeit aufgerufen werden. Diese Architektur erlaubt auch das Ende einer Anwendung bei irgendeiner Zelle. Weil keine Kette rückwärts abgewickelt werden muss, können die Zellen unmittelbar abschließen. Es besteht keine Notwendigkeit, zu dem Boss-Programm zurückzukehren, ehe die Anwendung verlassen wird. Bei einer Ausführungsform der Erfindung kann eine Zelle die Anwendung zu einer vorbestimmten Zeit nach dem Aufrufen einer neuen Zelle verlassen. Bei einer anderen Ausführungsform der Erfindung können andere Zellen eine DSF-Anweisung an diese Zelle schicken, dass sie abschließen soll.
- Fig. 13 zeigt ein Blockdiagramm zur Veranschaulichung der logischen Struktur einer DNA-Datei 250, die zu einer Zelle, wie der Zelle CA gehört. Die Datei 250 hat einen Abschnitt 252, welcher Parameter ("eigene Parameter") enthält, die in Beziehung zu den Charakteristika der Zelle CA selbst stehen. Beispielsweise kann der Abschnitt 252 Parameter bezüglich der Art, wie die Zelle CA sich bei Aufruf selbst manifestiert, enthalten: Die Fenstergröße und Hintergrundfarbe der Zelle CA, den Namen der Zelle CA, die Namen der zu ihrem Aufruf und Abschluss gehörenden Tondateien etc.
- Die Datei 250 enthält auch einen Abschnitt 254, welcher Verknüpfungsparameter ("Link Parameter") zu Zellen enthält, die in Beziehung zur Zelle CA stehen. Beispiele von in diesem Abschnitt enthaltenen Parametern sind: die Namen, Symbole und Positionen der anderen Zellen. Einer der Parameter ist "Schließen", der als Schließen der Zelle CA interpretiert wird, wenn die zu diesem Parameter gehörige Zelle aufgerufen wird.
- Die Datei 250 enthält weiterhin einen DSF Informationsabschnitt 256. Dieser Abschnitt enthält einen regulären Anweisungsabschnitt 257 und einen Top-Prioritätsfunktionsabschnitt 264. Die Struktur des regulären Abschnitts 257 und des Top- Prioritätsfunktionsabschnitts 264 ist praktisch dieselbe mit der Ausnahme, dass der Top-Prioritätsfunktionsabschnitt 264 eine höhere Priorität bei der Durchführung von Anweisungen hat. Diese beiden Abschnitte enthalten individuelle Header zur Identifizierung der Abschnitte (z. B. jedem Abschnitt geht ein anderer Name oder ein anderes Symbol als Header voran).
- Der reguläre Abschnitt 257 enthält einen "Zustand"-Abschnitt 258 und einen Anweisungsabschnitt 260. Letzterer enthält DSF- Anweisungen, welche von anderen Zellen an die Zelle CA gesendet worden sind. Anweisungen im Anweisungsabschnitt 260 werden nacheinander ausgeführt. Beispiele von Anweisungen sind "Kreiszeichnen", "Linienzeichnen" und "Rollen". Jede Anweisung enthält auch Parameter, welche für die Durchführung der Anweisung erforderlich sind (z. B. Ort und Durchmesser von Kreisen). Der Zustandsabschnitt 258 enthält drei Komponenten: (a) einen ersten Zeiger zur letzten DSF-Anweisung, die sich momentan im Anweisungsabschnitt 260 befindet, (ii) einen zweiten Zeiger zu der momentanen DSF-Anweisung, welche von der Zelle CA ausgeführt wird und (iii) den momentanen Status der Zelle. Statusbeispiele sind: Fertig, Belegt, Verriegelt und Nie.
- Der Top-Prioritätsfunktionsabschnitt 264 enthält einen Zustandsabschnitt 266 und einen Befehlszeilenabschnitt 268. Die Struktur des Zustandsabschnittes 266 ist ähnlich wie die Struktur des Zustandsabschnitts 258 (d. h., beide Abschnitte enthalten zwei Zeiger). Der Befehlszeilenabschnitt 268 enthält ausführbare Befehlszeilen, die von anderen Zellen unter Verwendung des DSF- Protokolls (oder eines ähnlichen Protokolls) gesendet worden sind. Die Befehlszeilen haben eine höhere Ausführungspriorität als die Anweisungen im Anweisungsabschnitt 260 (die Details der Ausführungspriorität werden später im Zusammenhang mit Fig. 14 noch erläutert). Die Befehlszeilen im Befehlszeilenabschnitt 268 werden nacheinander ausgeführt. Beispiele von Befehlen im Abschnitt 268 sind Schließen, Min (für Verkleinern eines Fensters), Max (für Vergrößern eines Fensters), Wiederherstellen usw.
- Es sei bemerkt, dass die logische Struktur gemäß Fig. 13 unter Verwendung von einer oder mehreren gegenständlichen Dateien implementiert werden kann. Weiterhin können Teile der logischen Abschnitte gegenständlich ineinander greifen. Bei einer Ausführungsform der Erfindung ist die DNA-Datei eine Textdatei, und damit kann der Inhalt der DNA-Datei unter Verwendung des regulären Texteditors modifiziert werden.
- Von einer Zelle an eine andere gesendete Anweisungen folgen dem DSF-Protokoll. Eine sendende Zelle (z. B. Zelle CS) bildet ein Kommunikationslink mit der DNA-Datei 250, welche zur Zelle CA gehört. Im Einzelnen sucht sie sich die Adresse der DNA-Datei 250 und bestimmt, ob diese in der Lage ist, DSF-Anweisungen anzunehmen (also, ob sie sich in einem "Bereit"-Zustand befindet), indem sie ihren Status im Zustandsabschnitt 258 überprüft. Anweisungen werden von der Zelle CS nur dann abgegeben, wenn die Zelle CA bereit ist, sie anzunehmen. Bei einer Ausführungsform beinhaltet das Ausgeben von Anweisungen das Schreiben von ASCII- Zeichen (z. B. ASCII-Zeichen für "Kreiszeichnen") in dem Anweisungsabschnitt 260 der DNA-Datei 250.
- Ist die Zelle CS autorisiert, Anweisungen an die Zelle CA auszugeben, dann liest die Zelle CS den ersten Zeiger (im Zustandsabschnitt 258) auf die letzte DSF-Anweisung, um die richtige Adresse zu bestimmen, in welche die DSF-Anweisungen geschrieben werden sollen. Es ist wichtig, dass keine DSF-Anweisungen überschrieben werden, die bereits in der Zelle CA vorhanden sind. Die Zelle CS schreibt DSF-Anweisungen in den Anweisungsabschnitt 260 der DNA-Datei 250. Die Zelle CS aktualisiert auch den ersten Zeiger im Zustandsabschnitt 258, so dass er auf die letzte DSF- Anweisung zeigt, die neu in den Anweisungsabschnitt 260 geschrieben worden ist. Das Kommunikationslink zwischen den Zellen CS und CA wird dann geschlossen. Man kann sehen, dass die Zelle CA und die DNA-Datei 250 keine Aufzeichnung (also Historie) behalten, aus welcher hervorginge, dass diese neuen Anweisungen von der Zelle CS stammen.
- Es sei bemerkt, dass das oben beschriebene DSF-Protokoll lediglich ein Protokollbeispiel ist. Man kann auch andere Protokolle benutzen, um DSF-Anweisungen in Zellen zu schreiben. Beispielsweise kann man andere Zeigerstrukturen benutzen, z. B. kann der erste Zeiger auf die Position nach der letzten DSF-Anweisung zeigen. Es können auch andere Arten von Status und andere Möglichkeiten zur Prüfung der Statusinformation verwendet werden. Weiterhin können Anweisungen entsprechend einer Logikstruktur gespeichert werden, anstatt gegenständlich aufeinander folgend.
- Beispielsweise könnten Anweisungen in Gruppen organisiert sein, wobei ein Zeiger auf die Adresse jeder Gruppe zeigt.
- Befehlszeilen werden von einer Zelle zu einer anderen unter Verwendung eines Protokolls gesendet, welches praktisch dasselbe wie das DSF-Protokoll ist. Weil der reguläre Anweisungsabschnitt 257 und der Top-Prioritätsfunktionsabschnitt 264 unterschiedliche Header haben, kann die sendende Zelle zwischen diesen beiden Abschnitten unterscheiden und in den richtigen Abschnitt schreiben. Man kann auch andere Mittel zur Identifizierung dieser beiden Abschnitte benutzen (z. B. separate verknüpfte Listen von Anweisungen und Befehlszeilen festhalten).
- Weil die DSF-Anweisungen/Befehle nacheinander ausgeführt werden (entweder gegenständlich oder logisch), muss die Zelle CA die Ausführung von Anweisungen/Befehlen (sofern vorhanden), welche den oben erwähnten von der Zelle CS geschriebenen Anweisungen/Befehlen vorangehen, zu Ende bringen. Dieser Satz zuvor geschriebener Anweisungen/Befehle kann gleichermaßen von anderen Zellen geschrieben werden (wenngleich es auch möglich ist, dass sie in einem früheren Kommunikationslink von der Zelle CS geschrieben worden sind).
- Nachdem der Satz zuvor geschriebener Anweisungen/Befehle ausgeführt ist, und vor der Ausführung seitens der Zelle CS geschriebener Anweisungen/Befehlen braucht die Zelle CA keinerlei Aktion bezüglich der Zelle, welche den ersten Satz von Anweisungen/Befehlen geschrieben hat, zu unternehmen (z. B. ist keine "Rückkehr" nötig). Dieser Aspekt unterscheidet die Erfindung von der üblichen Programmarchitektur.
- Es sei bemerkt, dass das Kommunikationslink zwischen den Zellen CA und CS vor der Ausführung der ersten, von der Zelle CS gesendeten Anweisung/Befehl beendet werden kann (beispielsweise sind die zuvor eingeschriebenen DSF-Anweisungen/Befehle noch nicht vollständig ausgeführt, wenn die Zelle CS aufhört, DSF- Anweisungen an die Zelle CA zu schicken). Dies ist verschieden von der üblichen Verknüpfung, bei welcher ein Kommunikationslink zwischen zwei Programm-Modulen erst dann aufgehoben wird, wenn die sich auf diese beiden Module beziehende Aufgabe vollständig ausgeführt ist.
- Bei einer anderen Ausführungsform des Top-Prioritätsfunktionsabschnitts 264 lässt der Befehlszeilenabschnitt 268 nur einen Befehl zu. Bei dieser Ausführung braucht man keine Zeiger. Somit kann der Zustandsabschnitt 266 aus dem Top-Prioritätsfunktionsabschnitt 264 entfernt werden. Es können andere Zellen einen einzigen Befehl in den Top-Prioritätsfunktionsabschnitt 264 schreiben, weil dieser Abschnitt durch einen Header von anderen Abschnitten getrennt ist.
- Fig. 14 zeigt die Struktur der Zelle CA. Sie ist logisch in eine Mehrzahl von Abschnitten gruppiert, die jeweils unter Verwendung von Instruktionen, die von einem Computer ausführbar sind implementiert werden. Die Zelle CA enthält einen Initialisierungsabschnitt 312 und einen DNA-Interfaceabschnitt 314. Letzterer erlaubt es der Zelle CA, aus ihrer entsprechenden DNA-Datei 250 auszulesen und in sie einzuschreiben. Der Initialisierungsabschnitt 312 kümmert sich bei Aufruf um Systemverwaltungsaufgaben einschließlich des Lesens von Parametern aus dem Abschnitt 252 "Eigene Parameter" der DNA-Datei 250. Die Zelle CA enthält auch einen DSF-Interfaceabschnitt 316 (zur Verarbeitung des DSF- Protokolls). Dieser Abschnitt enthält einen Code (oder Programminstruktionen) zum Senden und Empfangen von Anweisungs-/Befehls-Zeilen unter Verwendung des DSF-Protokolls.
- Die Zelle CA enthält einen Ausführungsabschnitt 318, der einen Code zum automatischen Ausführen von durch andere Zellen in die DNA 250 geschriebenen Anweisungen und Befehlszeilen enthält. Der Code liest nacheinander Anweisungen im Anweisungsabschnitt 260 der DNA-Datei 250 und führt sie aus. Nach der Ausführung jeder Anweisung verzweigt die Zelle CA zum Top-Prioritätsfunktionsabschnitt 259 und führt alle dort enthaltenen Befehlszeilen aus. Die Zelle CA führt dann die nächste Anweisung im Anweisungsabschnitt 260 aus.
- Zur Veranschaulichung der Ausführungsschritte sei ein Beispiel benutzt. In diesem Beispiel enthält der Anweisungsabschnitt 260 zwei Anweisungen "Kreiszeichnen" und "Linienzeichnen", während der Top-Prioritätsfunktionsabschnitt 259 eine Befehlszeile "Max" enthält. Wenn die Zelle CA eine Anweisung "Kreiszeichnen" und ihre zugehörigen Parameter liest, dann führt der Code einen grafischen Algorithmus zum Zeichnen eines Kreises an einer gewünschten Stelle mit zugehörigem Durchmesser (wie von den zugehörigen Parametern bestimmt wird) durch. Die Zelle CA verzweigt dann zum Top-Prioritätsfunktionsabschnitt 259 und führt den Befehl "Max" aus, bei welchem das zur Zelle CA gehörige Fenster vergrößert wird. Die Zelle CA kehrt zum Anweisungsabschnitt 260 zurück und führt die nächste Anweisung aus, also die Anweisung "Linienzeichnen". Die Zelle CA führt einen grafischen Algorithmus aus, bei welchem eine Linie entsprechend den Parametern gezeichnet wird, die zur Anweisung "Linienzeichnen" gehören.
- Wenn bei dem oben genannten Beispiel die Befehlszeile im Top- Prioritätsfunktionsabschnitt 259 einen Befehl "Schließen" enthält, dann schließt sich die Zelle CA selbst. In diesem Falle wird die Anweisung "Linienzeichnen" nicht ausgeführt.
- Bei einer Ausführungsform der Erfindung liest die Zelle CA den Anweisungsabschnitt 260 zu vorbestimmten Zeiten unabhängig davon, ob Anweisungen in der DNA-Datei 250 vorliegen (also ähnlich wie bei einer Abruf-(polling)-Anordnung. Bei einer anderen Ausführungsform der Erfindung sendet eine Zelle ein Signal an die Zelle CA entweder direkt oder indirekt (beispielsweise über ein Operationssystem), nachdem Anweisungen an die DNA-Datei 250 gesendet worden sind. Nach Empfang des Signals führt die Zelle die Anweisungen im Anweisungsabsohnitt 260 aus, bis alle Anweisungen abgearbeitet sind. Die Zelle CA wartet dann auf ein weiteres Signal. Diese Ausführungsform ist ähnlich einer Interrupt- Anordnung. Somit werden bei beiden Ausführungsformen Anweisungen automatisch ausgeführt.
- Die Zelle CA enthält einen Zwischenspeicherabschnitt 322 zur vorübergehenden Speicherung von Information. Beispielsweise ist es möglich, Attribute (z. B. Hintergrundfarbe und Größe des Darstellungsfensters) einer Zelle CA zu ändern, während sie eine Anweisung ausführt. Bei einer anderen Ausführungsform der Erfindung werden geänderte Attribute zeitweilig im Zwischenspeicherabschnitt 322 abgespeichert anstatt unmittelbar in die DNA-Datei 250 eingeschrieben zu werden. Bei dieser Ausführung der Zelle CA wird die im Zwischenspeicherabschnitt 322 gespeicherte Attributinformation in einen Abschnitt 252 "Eigenen Parameter" der DNA- Datei 250 nur dann eingeschrieben, wenn die Zelle CA ihr Programm beendet hat.
- Die Zelle CA enthält auch einen Zellenaufrufabschnitt 324 zum Aufrufen anderer Zellen. Bei einer Ausführungsform der Erfindung erhält dieser Abschnitt Information über die aufzurufende Zelle und überträgt diese Information an eine spezialisierte Zelle, welche die gewünschte Zelle dann aufruft. Man kann auch die Funktionsweise dieser spezialisierten Zelle in den Zellenaufrufabschnitt der Zelle CA oder anderer Zellen einbauen.
- Es sei darauf hingewiesen, dass die oben erwähnten Abschnitte in Zelle CA logisch gruppiert sind, und dass Teile dieser Abschnitte physisch vermischt sein können.
- Aus den oben beschriebenen Strukturen der Zelle CA und ihrer zugehörigen DNA-Datei 250 lässt sich sehen, dass sowohl die Zelle CA als auch die DNA-Datei 250 keine Spur zum Ursprung der DSF- Anweisungen zurückverfolgen. Eine Zelle kann DSF-Anweisungen (welche in ihrer zugehörigen DNA-Datei gespeichert sind) von vielen Zellen erhalten. Nachdem die DSF-Anweisungen empfangen worden sind, wird die Verbindung zwischen Ursprungs- und Bestimmungszellen aufgehoben. Die Zelle führt die in ihrer zugehörigen DNA-Datei enthaltenen DSF-Anweisungen aus, ohne zu wissen, wie die Anweisungen in die DNA-Datei gekommen sind. Damit besteht keine Notwendigkeit, zu irgendeiner Zelle "zurückzukehren".
- Typischerweise ist die Größe jeder Zelle gering und die Funktion der Zelle genau definiert. Aus diesem Grund ist die Ausführungsgeschwindigkeit hoch. Als Ergebnis der geringen Größe und spezialisierten Funktion kann in die Zellen leicht eingeschrieben werden, so dass sie die Ressourcen eines Computers voll ausnützen. Die Kommunikation zwischen Zellen unter Verwendung der DSF erfolgt direkt mit minimalem Zugriff auf das Betriebssystem, auf welchem eine Anwendung läuft. Damit erhält man eine hohe Effizienz.
- Die Architektur der Erfindung umfasst mindestens zwei Zellen, die miteinander kommunizieren können. Die Zellen sind gekapselte Programm-Module, die für ihre zugewiesenen Aufgaben spezialisiert sind. Daher umfassen Anwendungen, die unter Verwendung der vorliegenden Architektur erstellt worden sind, eine Vielzahl ausführbarer Anwendungen, die unabhängig voneinander oder gleichzeitig laufen können. Die Zellen interagieren miteinander unter Verwendung des erfindungsgemäßen DSF-Protokolls. Jede Zelle kann die Aktion anderer Zellen steuern. Beispielsweise kann eine erste Zelle eine zweite Zelle steuern, und die zweite Zelle kann die erste Zelle steuern. Es hat somit keine einzelne Zelle die vollständige Kontrolle über die anderen Zellen, mit anderen Worten, es gibt keinen Boss. Bei konventionellen Architekturen können andererseits Programm-Module, die einem Boss unterstellt sind, den Boss nicht steuern. Eine andere einzigartige Eigenschaft der erfindungsgemäßen Architektur besteht darin, dass die Zelle, welche einen Befehl erhält, keinerlei Information darüber erhält, von wo der Befehl gekommen ist. Diese fehlende Kenntnis der Historie erlaubt es der Zelle, sich vorwärts zu bewegen, anstatt in eine Verknüpfung zurückzugehen.
- Die erfindungsgemäße Technologie wird als "digitale Zellentechnologie" bezeichnet, weil die Struktur der Programm-Module und die Interaktion zwischen diesen ähnlich bei biologischen Zellen ist. Hier seien einige der Ähnlichkeiten angeführt: (i) Eine Anwendung erfolgt unter Beteiligung vieler Zellen, welche dynamisch miteinander interagieren, (ii) viele Zellen können gleichzeitig aktiv sein, (iii) die Interaktion zwischen einem Paar Zellen kann unabhängig von Interaktionen zwischen anderen Zellenpaaren sein, (iv) die Steuerung ist verteilt anstatt zentralisiert zu sein und (v) zu jeder Zelle gehört eine DNA-Struktur, welche das Verhalten der Zelle bestimmt.
- Eine Ausführungsform der Erfindung ist ein Multimedia- Anwendungs-Entwicklungssystem, welches unter Microsoft's MS Windows läuft. In dieser Umgebung sind die Zellen Programme, die als "EXE"-Dateien gespeichert sind und bei Aufruf typischerweise ein Fenster auf einem Computermonitor zeigen. Durch Verknüpfung dieser Zellen kann ein Benutzer eine Softwareanwendung, genau wie ein Zusammenfügen von Blocks, konstruieren. Jede Zelle mit ihrer speziellen Funktion erhält durch das DSF-Protokoll eine bestimmte andere Funktion oder einen anderen Wert in Verbindung mit anderen Zellen, um eine Vielzahl von Anwendungen zu produzieren.
- Fig. 15 zeigt ein Blockdiagramm eines Computersystems 380, auf welchem das oben beschriebene Anwendungs-Erzeugungssystem läuft. Das Computersystem 380 enthält einen PC 382, etwa einen IBM- kompatiblen Computer. Der PC enthält Komponenten wie eine CPU, RAM- und ROM-Speicher, ein Plattenlaufwerk und Multimediageräte (beispielsweise eine Soundkarte, einen CD-ROM Leser, eine Videokarte etc.). Der PC wird mit einem MS-DOS 384 und einem MS Windows 386 geladen. Die erfindungsgemäßen Zellen 391-393 laufen oben (on top of) auf MS Windows 386. Einige dieser Zellen können auf einem Bildschirm grafisch dargestellt werden und auf der Soundkarte des PC 382 abgespielt werden.
- Ein Beispiel einer Liste von Zellen, welche in einer MS Windows Umgebung laufen, sind zusammen mit einer Beschreibung ihrer Funktionen nachstehend angeführt:
- NAME BESCHREIBUNG
- BUTTON: Erzeugt Tastenbilder mit zugeordneten Aktionsattributen.
- VIDEO: Aktiviert Abspielen der Video Datei (AVI).
- INHALT: Bilddarstellung von Textdateien (TXT) (Texteditor mit Fähigkeit, dem Text Aktionsattribute hinzuzufügen.
- VISUELL: Ermöglicht Bildschirmdarstellung von BMP, DXP, TITF, WRI und TXT Dateien mit dynamischen 360- Grad-Freirollen, Mehrfachschichtunterstützung, Raster-und Vektorüberschneidungen und Objektüberschneidungen mit zugeordneten Rasterattributen.
- NAKAMA: Ermöglicht, dass mehr als eine visuelle Zelle unter Verwendung von Koordinaten miteinander verknüpft werden. Ermöglicht Verriegelung von Bildern in zwei visuellen Zellen unter Verwendung eines verknüpften Fensters (Vogelaugen-Blick).
- RUN: DNA-Datei-Editor und DNA-Datei-Ausführer. Ermöglicht kontinuierliche Reproduktion von Anwendungen. Diese Zelle dient als die oben erwähnte spezialisierte Zelle zum Aufrufen anderer Zellen.
- COPY: Durchführung des Kopierens von Dateien.
- TITEL: Ausführung von Titelbalkenfunktionen.
- NEUSTART: Lässt den Benutzer wählen, aus dem Betriebssystem herauszugehen oder neu zu starten.
- PLAYWAV: Ermöglicht das Abspielen einer Tondatei (WAV).
- AREA: Manipuliert die Attribute von Grafiken, welche in die visuelle Zelle eingeschrieben sind.
- LISTEN: Ermöglicht die Gruppierung von Objekten/Schichten und ergibt sofortigen Zugang zu der definierten Gruppierung.
- Diese Zellen werden in einen Speicher (z. B. floppy disk und/oder Festplatte) als "EXE"-Dateien gespeichert. Um System-Ressourcen zur gleichzeitigen Aktivierung von mehr als einer Zelle effektiv zuzuordnen, müssen die Größen der meisten Zellen um 10 Kilobytes betragen. Die VISUELLE Zelle bildet eine Ausnahme und hat etwa 100 Kilobytes.
- Zur Veranschaulichung des Systems wird ein vereinfachtes Beispiel herangezogen. Bei diesem Beispiel wird nur ein Zellentyp, die oben beschriebene visuelle Zelle, benutzt. Bei diesem Beispiel bedient sich das System der Ressourcen von MS Windows. Z. B. werden das Aufrufen einer Zelle (z. B. das Laden einer geeigneten Datei beim Anklicken eines Icons) und das grafische Benutzer-Interface (z. B. das Manipulieren von Fenstern wie Änderung der Größe, Auseinanderziehen und Verkleinern etc.) von MS WINDOWS bestimmt.
- Das Multimedia-Anwendungs-Entwicklungssystem muss in MS WINDOWS installiert werden. Die Installation umfasst das Laden von Dateien von Bitmaps, Zellen, Ton, Video etc. aus entfernbaren Speichermedien (z. B. floppy CD-ROM etc.) in entsprechende Verzeichnisse auf der Festplatte des Computers. Programme werden mit MS WINDOWS verkettet, und Icons werden an geeigneten Positionen platziert. Somit kann ein Benutzer unter MS WINDOWS ein Entwicklungssystem durch Anklicken eines Icons aufrufen. Wenn das Entwicklungssystem erst einmal läuft, können verschiedene Zellen aufgerufen werden durch Anklicken von Icons, welche den Zellen zugeordnet sind.
- Fig. 16 zeigt ein Fenster 400, das eine erste visuelle Zelle darstellt, die auf einem Bildschirm 402 unter Steuerung durch MS WINDOWS 386 gezeigt wird. Das Fenster 400 enthält typischerweise ein (nicht dargestelltes) grafisches Bild und einen Titelbalken 404. Ein Benutzer kann auf ein Icon 406 im Fenster 400 klicken und dann wird ein Seitenbalken 408 dargestellt. Dieser enthält Platz zum Darstellen von Icons, welche es dem Benützer erlauben, der ersten zum Fenster 400 gehörigen visuellen Zelle Funktionalitäten hinzuzufügen.
- Einer der Plätze des Seitenbalkens 408 enthält einen Icon 410, welcher es einem Benutzer erlaubt, ein Icon zum Aufrufen einer zweiten visuellen Zelle in das Fenster 400 hinzuzufügen. Nachdem der Benutzer das Icon 410 angeklickt hat, hilft ihm ein Symbol, ein Icon 412 innerhalb des Fensters 400 zu platzieren, welches die zweite visuelle Zelle darstellt. Dann erscheint ein Fenster 430, das in Fig. 17 gezeigt ist, welches es dem Benutzer erlaubt, die Eigenschaften der zweiten visuellen Zelle zu definieren. Der Seitenbalken 408 enthält auch ein Icon 424, welcher es dem Benutzer erlaubt, eine innerhalb des Fensters 400 platzierte visuelle Zelle zu entfernen.
- Das Fenster 430 enthält eine Zeile 432, in welcher der Benutzer den Namen einer DNA-Datei eingeben kann, die zu der zweiten visuellen Zelle gehört. Die in das Fenster 430 eingegebene Information wird in dieser DNA-Datei gespeichert. Das Fenster 430 enthält auch eine Zeile, in welcher der Benutzer den Titel eines grafischen Fensters eingeben kann, welches die zweite visuelle Zelle zeigt. In Fig. 17 wird in Zeile 434 der Titel "1-A" eingegeben. Eine Zeile 436 erlaubt es dem Benutzer, den Modus zum Aufrufen der zweiten visuellen Zelle zu wählen. Im Fenster 430 ist ein "Doppelklick" gewählt, um anzuzeigen, dass die zweite visuelle Zelle beim doppelten Anklicken des Icons 412 aufgerufen ist.
- Das Fenster 430 enthält eine Zeile 438, welche es dem Benutzer erlaubt, die Aktion der zweiten visuellen Zelle zu definieren. In Fig. 17 ist die Aktion "Bitmap-Datei Öffnen" gewählt. Diese von der zweiten visuellen Zelle durchgeführte Aktion besteht im Öffnen einer Bitmap-Datei. Eine Zeile 440 erlaubt es dem Benutzer, in eine Bilddatei einzugeben, die zu öffnen ist, wenn die zweite visuelle Zelle diese Aktion durchführt. Das Fenster 430 enthält einen "Browse"-Button 441, mit Hilfe dessen der Benutzer nach bereits im Computer gespeicherten Bilddateien suchen kann, um in Zeile 440 eine geeignete Datei einzugeben. Das Fenster 430 enthält auch eine Box 442 "Schließ mich". Wird diese gewählt, dann wird die erste visuelle Zelle automatisch geschlossen, wenn die zweite visuelle Zelle aufgerufen wird. Dies wird implementiert durch Zufügen eines Parameters "Schließen" zu einer Zeile in dem Verknüpfungsparameter der zur ersten visuellen Zelle zugehörigen DNA-Datei, welche die erste und die zweite visuelle Zelle miteinander verknüpft.
- Bei dieser Ausführungsform sind die Zeilen 440-442 der Aktionszeile 438 zugeordnet. Wenn die gewählte Aktion "Visuelle Zelle Schließen" anstatt "Bitmap Datei Öffnen" ist, dann würde die Zeile 440 geändert werden, damit der Benutzer in die DNA-Datei einer visuellen Zelle gelangen kann, die ausgewählt worden ist, um nach Aufrufen der zweiten visuellen Zelle geschlossen zu werden. Bei dieser Ausführungsform sendet die zweite visuelle Zelle nach Aufruf eine DSF-Anweisung "Beenden" an die bezeichnete visuelle Zelle, damit diese Zelle geschlossen wird.
- Man kann das Fenster 430 auch benutzen, um verschiedene Aktionen einzugeben, die von der zweiten visuellen Zelle ausgeführt werden sollen. Die beiden oben genannten Beispiele sind lediglich Veranschaulichungsbeispiele.
- Das Fenster 430 enthält eine Zeile 444, welche es dem Benutzer ermöglicht, eine Audio-Datei einzugeben, welche zum Aufrufen der zweiten visuellen Zelle gehört. Das Fenster 430 enthält einen Button 445 "Browse", so dass der Benutzer nach Audiodateien (die typischerweise eine Erweiterung von "WAV" Dateien haben) suchen kann, welche bereits im Computer gespeichert sind, damit man in Zeile 444 in eine geeignete Datei gelangen kann.
- Das Fenster 430 enthält eine Zeile 448, welche es dem Benutzer erlaubt, eine Verzögerung einzugeben. Dieser Parameter ermöglicht es, dass die zweite visuelle Zelle sich selbst um ein vorbestimmtes Zeitintervall nach dem Anklicken des Icon 412 manifestiert.
- Es sei darauf hingewiesen, dass das Format des Fensters 430 und die von ihm erbetene Information nur Beispiele darstellen. Abhängig vom Konstruktionsziel und der Kreativität eines Programmierers könnte das Fenster 430 auch andere Formate haben und andere Arten von Informationen anfordern. Ist das Fenster 430 geschlossen (nachdem alle wichtige Informationen vom Benutzer eingegebene worden sind), dann wird die darin enthaltene Information in der DNA-Datei gespeichert, wie in Zeile 432 angedeutet. Bei dieser Ausführungsform stellt die DNA-Datei eine ASCII Textdatei dar, welche auf der Festplatte gespeichert ist.
- Klickt ein Benutzer das Icon 412 an, dann wird ein Fenster 416 geöffnet, um ein Beispiel der zweiten visuellen Zelle anzugeben. Das Fenster 416 hat Eigenschaften, welche von seiner zugehörigen DNA-Datei definiert werden. Beispielsweise enthält das Fenster 416 den Titel "1-A" (wie er von Zeile 434 des Fensters 430 bestimmt ist) und ein grafisches Bild 417, welches zur in Zeile 440 definierten Bilddatei gehört. Die Position des Fensters 416 kann unter Verwendung normaler MS Windows Methoden herumgeschoben werden (d. h., "Drag-and-Drop"). Klickt ein Benutzer wiederum auf das Icon 412, dann erscheint ein anderes Fenster 418 der zweiten visuellen Zelle gleichzeitig mit dem Fenster 416. In diesem Falle werden zwei Kopien der zweiten visuellen Zelle in den RAM-Speicher geladen, die jeweils der zweiten DNA-Datei zugehören.
- Es ist möglich, die erste visuelle Zelle zu schließen, während die zweite visuelle Zelle aktiv ist. In Fig. 16 hat jedes Fenster einer visuellen Zelle einen Button "Schließen", wie den Button 422 in Fenster 416, damit der Benutzer das Fenster schließen kann. Bei dem in Fig. 16 dargestellten Entwicklungssystem kann der Benutzer das Fenster 400, welches zur ersten visuellen Zelle gehört, schließen, während die Fenster 416 und 418 weiterhin auf dem Bildschirm 402 aktiv sind.
- Es ist auch möglich, das Fenster 400 unter Verwendung einer von der zweiten visuellen Zelle ausgegebenen Anweisung zu schließen. Wie bereits erläutert, kann Zeile 438 aus Fig. 17 auf "Visuelle Zelle Schließen" gesetzt werden, und der Name der visuellen Zelle wird auf die erste visuelle Zelle gesetzt. Wenn die zweite visuelle Zelle aufgerufen wird, sendet sie eine DSF-Anweisung an die DNA-Datei, welche der ersten visuellen Zelle zugeordnet ist, damit diese geschlossen wird.
- Es sei nun ein Beispiel mit zwei Zellen unterschiedlichen Typs beschrieben, einer visuellen Zelle und einer Button-Zelle. Fig. 18 zeigt ein Fenster 460, das eine Button-Zelle darstellt, die unter Steuerung durch MS Windows 386 gemäß Fig. 15 auf einem Bildschirm 462 dargestellt wird. Das Fenster 460 enthält einen Titelbalken 464. Ein Benutzer kann ein Icon 466 im Fenster 460 anklicken, und dann wird ein Seitenfenster 468 dargestellt. Das Seitenfenster 468 enthält Stellen zur Darstellung von Icons, welche es einem Benutzer erlauben, dem Fenster 460 Buttons hinzuzufügen oder zu entfernen.
- Eine der Stellen des Seitenfensters 468 enthält ein Icon 470, mit Hilfe dessen im Fenster 460 ein Button eingefügt wird. Nachdem der Benutzer das Icon 470 im Seitenfenster 468 anklickt, erscheint ein Symbol, um dem Benutzer zu helfen, ein Button 462 an einer gewünschten Position innerhalb des Fensters 460 zu platzieren. Dieser neue Button kann später vom Benutzer angeklickt werden, und es tritt eine Folge von durch den Benutzer definierten Aktivitäten ein. Das Seitenfenster 468 enthält ebenfalls einen Icon 476, mit Hilfe dessen der Benutzer einen innerhalb des Fensters 460 bestehenden Button entfernen kann.
- Der Benutzer kann ein anderes Icon 474 im Seitenfenster 468 anklicken, welches ein Fenster 500 öffnet, wie in Fig. 19 dargestellt, das es dem Benutzer erlaubt, die Eigenschaften des Buttons 472 zu definieren. Das Fenster 500 enthält einen Bereich 502 mit einer Liste von Posten, mit Hilfe deren der Benutzer die Arten von Informationen wählen kann, die in das Fenster 500 eingegeben werden sollen. Beispielsweise erlaubt die Wahl von "Aktion", dass der Benutzer Aktionen eingibt, die bei Aufruf über den Button 472 ausgeführt werden sollen, während die Wahl des "Icon" es dem Benutzer erlaubt, zu wählen, dass ein Icon den Button darstellt, anstatt einen einfachen rechteckigen Button zu benutzen. Die Liste kann auch andere Posten enthalten. Abhängig von der Wahl des Postens in der Liste ist das Erscheinen des Fensters 500 und die von ihm angeforderte Information verschieden.
- In einem eine Liste zeigenden Bereich 502 wird "Aktion" gewählt. Als Ergebnis dieser Wahl werden ein Fenster 540 "Aktion" und ein Fenster 506 "Hinzufügen" dargestellt. Das Aktionsfenster 504 zeigt die Aktionen des Buttons 472 bei Aufruf. Der Inhalt des Aktionsfensters 504 wird vom Benutzer gewählt unter Verwendung des Fensters 506 "Hinzufügen".
- Das Fenster 506 enthält eine Mehrzahl von Aktionen wie "Programm ausführen", "Button ausführen", "Visuell Ausführen, "Play Wave" und "Bitmap Darstellen". Der Benutzer kann irgendeine dieser Aktionen anklicken, und dann wird ein Fenster gezeigt, welches es dem Benutzer erlaubt, die Aktion weiter zu definieren. Ein Beispiel eines solchen Fensters für "Visuell Ausführen" zeigt Fig. 20. Der Benutzer kann ein oder mehrere Aktionen im Hinzufügungsfenster 506 auswählen.
- Die ausgewählte Aktion wird im Aktionsfenster 504 dargestellt. Beispielsweise enthält das Aktionsfenster 504 eine Zeile "MUSIC START.WAV", die anzeigt, dass die Aktion "Play Wave" im Hinzufügungsfenster 506 zuvor gewählt worden ist. Ein zu "Play Wave" gehöriges (nicht dargestelltes) Fenster erlaubt es dem Benutzer, anzugeben, dass eine Audiodatei mit dem Namen "START.WAV" gespielt werden soll. Das Aktionsfenster 504 enthält auch eine Zeile "VISUELLES BEISPIEL AUSFÜHREN", die anzeigt, dass die Aktion "Ausführen Visuell" im Hinzufügungsfenster 506 zuvor gewählt worden war. Klickt der Benutzer auf einen "OK"-Button 508, dann wird die in das Fenster 500 eingegebene Information in der zu dieser Buttonzelle gehörigen DNA-Datei gespeichert.
- Es sei nun die Spezifikation der visuellen Zelle "SAMPLE" beschrieben. Ein Fenster 530 in Fig. 20 zeigt die Art der angeforderten Information nach Wählen der Aktion "Visual Ausführen" im Hinzufügungsfenster 506. Das Fenster 530 enthält eine Zeile 532, mit welcher der Benutzer die DNA-Datei der visuellen Zelle eingeben kann, welche er aufzurufen wünscht. In diesem Fall heißt der Name "SAMPLE", welcher der Zeile "VISUELL Ausführen" im Aktionsfenster 504 entspricht. Das Fenster 530 enthält einen "Browse"-Button 534 für den Fall, dass der Benutzer eine Liste bereits existierender DNA-Dateinamen finden muss. Das Fenster 530 enthält auch eine Zeile 536, mit welcher der Benutzer den Titel des Fensters der visuellen Zelle eingeben kann. In diesem Fall ist der Titel "2-B". Das Fenster 530 enthält eine Zeile 536, mit welcher der Benutzer die gewünschte Aktion eingeben kann. Beispiele von Aktionen sind "Neues Fenster Öffnen", "Neuen Vektor Öffnen", "Neuen Film Öffnen". Der Inhalt der nächsten Zeile im Fenster 530 der Zeile 540 hängt von der Wahl in Zeile 538 ab. Bei diesem Beispiel kann der Benutzer über die Zeile 540 den Namen einer Bitmap-Datei eingeben, weil die Aktion in Zeile 538 "Neues Fenster Öffnen" ist. Ist die Aktion in Zeile 538 "Neuen Vektor Öffnen" oder "Neuen Film Öffnen", dann fordert die Zeile 540 den Namen einer Vektordatei bzw. einer Videodatei an. Das Fenster 530 enthält einen "Browse"-Button 542, mit Hilfe dessen der Benutzer eine gewünschte, bereits existierende Bitmap-Datei finden kann. Das Fenster 530 enthält eine Zeile 544, mit welcher der Benutzer eine Audiodatei eingeben kann, wenn die visuelle Zelle aufgerufen ist. Das Fenster 530 enthält einen "Browse"-Button 548, welcher es dem Benutzer erlaubt, eine gewünschte, bereits existierende WAV Datei auszuwählen. Klickt der Benutzer auf einen "OK"-Button 549, dann wird die in das Fenster 530 eingegebene Information benutzt, um die zum Button 472 gehörige gewählte visuelle Zelle zu spezifizieren. Diese Information wird zusammen mit dem Rest der in das Fenster 500 eingegebenen Information später in der DNA-Datei des Buttons 472 gespeichert.
- Wenn alle den Button 472 betreffende Information eingegeben und gespeichert ist, kann der Button 472 aufgerufen werden. Betrachtet man wieder Fig. 18, dann kann das Seitenfenster 468 durch Anklicken des Icon 466 entfernt werden. Durch Entfernen des Seitenfensters 468 wird das Fenster 460 von einem Editiermodus (in welchem ein Benutzer Buttons hinzufügen, abwandeln und entfernen kann), in einen aktiven Modus (in welchem der Benutzer Buttons im Fenster 460 aufrufen kann) verändert. Bei dieser Ausführungsform wirkt der Button 466 als Hin- und Herschalter zum Darstellen bzw. Entfernen des Seitenfensters 468. Nach Entfernung des Seitenfensters 468 kann ein Benutzer den Button 472 anklicken, um die zugehörigen Aktionen aufzurufen: Spielen eines Musikstückes und Darstellen eines Fensters 482 entsprechend der visuellen Zelle SAMPLE. Der Titel des SAMPLE Fensters ist "2-B" entsprechend Zeile 536 in Fig. 20. Bei diesem Beispiel enthält das Fenster 482 ein Icon 484, mit Hilfe dessen eine andere visuelle Zelle aufgerufen werden kann. Dieses Icon 484 wurde zuvor in die Visualzelle SAMPLE in einer Weise eingefügt, die ähnlich der oben in Zusammenhang mit Fig. 16 diskutierten Betriebsweise ist. Der Benutzer kann auf das Icon 484 klicken, um ein anderes Fenster 490 entsprechend einer anderen visuelle Zelle darzustellen.
- Es sei erwähnt, dass das Format der Fenster 500 und 530 und die von ihnen angeforderte Information nur Beispiele sind. Abhängig vom Ziel der Auslegung und der Kreativität eines Programmierers können die Fenster 500 und 530 auch andere Formate haben und andere Arten von Informationen anfordern.
- Ein weiteres Beispiel einer Anwendung, die unter dem System nach Fig. 15 läuft, ist ein Hotelindexsystem, welches auf dem Bildschirm eines Computers dargestellt wird. Die Anwendung kann durch Vereinigen einer Sammlung von Zellen gebildet werden. Irgendeine der Zellen kann zuerst aufgerufen werden. Beispielsweise kann ein Benutzer der Anwendung eine Zelle aufrufen (z. B. durch Anklicken), welche so eingerichtet ist, dass sie ein den Index enthaltendes Fenster zeigt. Eine andere Zelle wird aktiv, wenn ein Benutzer auf eine Position im Indexfenster klickt. Diese neue Zelle zeigt sich selbst als anderes Fenster, welches eine regionale Karte zeigt. Der Benutzer kann auf eine Position im Kartenfenster klicken, um eine dritte Zelle zu aktivieren, welche Text oder Bilder in ihrer Darstellung enthält. Auf diese Weise können mehr als eine Zelle gleichzeitig aktiv sein und so ein Anwendungsprogramm schaffen.
- Wie oben erwähnt, kann bei einer Ausführungsform der Erfindung eine Zelle indirekt eine andere Zelle informieren, nachdem DSF- Anweisungen in sie geschrieben sind. Fig. 21 zeigt ein Flussdiagramm 580 einer Ausführungsform der indirekten Benachrichtigung von Zellen. Bei diesem Beispiel ordnet MS Windows 386 nach Fig. 15 jedem Programm (einschließlich der Zellen), das auf ihm läuft, eine Programmidentifikation zu. Nachdem die erste Zelle einen Satz von DSF-Anweisungen in eine DSF-Datei einer zweiten Zelle eingeschrieben hat (Schritt S582), erhält sie die Programmidentifikation der zweiten Zelle (Schritt S584). Die erste Zelle sendet eine Unterbrechung an MS Windows 386, welche es bittet, eine Unterbrechung an die zweite Zelle zu senden (Schritt S586). Auf diese Bitte hin sendet MS Windows 386 eine Unterbrechung an die zweite Zelle (Schritt S588). Die zweite Zelle führt dann die zuvor in ihre zugehörige DNA-Datei eingeschriebene DSF-Anweisung aus (Schritt S590).
- Es versteht sich, dass das MS Windows in obigem Flussdiagramm lediglich ein Beispiel für ein Betriebssystem ist. Andere Betriebssysteme wie MS DOS und Macintosh OS können ebenso benutzt werden, um die Unterbrechung an Stelle von MS Windows vorzunehmen.
Claims (16)
1. Verfahren zum Betreiben eines Computers für die
Ausführung eines Anwenderprogramms in einer auf Window
basierenden Umgebung, wobei Programm-Module zur Bildung des
Anwenderprogramms miteinander verknüpft sind, dadurch gekennzeichnet,
dass jedes Modul (CA) ein Fenster steuert und eine vom
Modul (CA) zu verarbeitende Datei (250) hat,
und dass ein erstes Modul Befehle (DSF) in die Datei (250)
eines zweiten Moduls einschreiben kann, die dann vom zweiten
Modul ausgeführt werden, ohne eine Kommunikation mit dem
ersten Modul aufzubauen.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet,
dass ein erstes Programm-Modul (CA) bei Aufruf aus seiner
zugehörigen - ersten - Datei (250) eine darin enthaltene erste
Mediendatei entnimmt und so eine erste Medienpräsentation
kreiert und ein zweites Programm-Modul aufruft,
dass das zweite Programm-Modul (CA) bei Aufruf eine in
seiner zugehörigen - zweiten - Datei enthaltene zweite
Mediendatei (252) entnimmt und auf diese Weise eine zweite
Medienpräsentation kreiert,
und dass das zweite Programm-Modul ohne Rückmeldung an das
erste Programm-Modul endet abschließt.
3. Verfahren nach Anspruch 2, dadurch gekennzeichnet,
dass sowohl die erste als auch die zweite Datei einen ersten
Abschnitt (260, 268) zur Aufnahme von Befehlen seitens anderer
Programm-Module (CA) hat,
dass das zweite Programm-Modul (CA) eine
Programminstruktion (326) zum Senden eines ersten Befehlssatzes an die erste
Datei enthält,
dass das erste Programm-Modul (CA) Programminstruktionen
(318) zur automatischen Durchführung des ersten Befehlssatzes
ohne Rückmeldung eines Ausführungsergebnisses an das zweite
Programm-Modul (CA) enthält und dass das erste Programm-Modul
weiterhin Programminstruktionen (316) zum Aussenden eines
zweiten Satzes von Anweisungen an die zweite Datei enthält,
und dass das zweite Programm-Modul Programminstruktionen
(318) zur automatischen Durchführung des zweiten Befehlssatzes
ohne Rückmeldung des Ausführungsergebnisses an das erste
Programm-Modul enthält.
4. Verfahren nach Anspruch 3, dadurch gekennzeichnet,
dass die erste Datei enthält:
einen ersten Abschnitt (260, 268) zur Aufnahme von seitens
anderer Programm-Module gesendeter Befehle,
einen zweiten Abschnitt (258, 266), der Angaben über den
Status der ersten Datei enthält,
und dass das zweite Programm-Modul die Angaben vor dem
Aussenden des ersten Befehlssatzes prüft.
5. Verfahren nach Anspruch 4, dadurch gekennzeichnet,
dass der zweite Abschnitt einen ersten Zeiger (a) enthält,
welcher zu einem der Befehle in der ersten Datei gehört und
welcher veränderbar ist, um das Hinzufügen des ersten
Befehlssatzes zur ersten Datei erkennen zu lassen.
6. Verfahren nach Anspruch 5, dadurch gekennzeichnet,
dass der zweite Abschnitt weiterhin einen zweiten Zeiger (ii)
enthält, der auf einen Befehl in der ersten Datei zeigt, der
gerade vom ersten Programm-Modul (CA) ausgeführt wird.
7. Verfahren nach Anspruch 4, dadurch gekennzeichnet,
dass die Angabe mindestens einen ersten und einen zweiten
Status haben, von denen der erste Status anzeigt, dass die erste
Datei bereit zur Annahme neuer Befehle ist, und der zweite
Status anzeigt, dass die erste Datei keine neuen Befehle
annehmen kann.
8. Verfahren nach Anspruch 4, dadurch gekennzeichnet,
dass die erste Datei weiterhin einen Satz Parameter (252)
umfasst, welche sich auf Charakteristika des ersten Programm-
Moduls (CA) beziehen, und dass das erste Programm-Modul
Programminstruktionen (312) für die Verwendung der Parameter bei
aufgerufenem ersten Programm-Modul enthält.
9. Vorrichtung mit einem Computer, der in einer auf
Window basierenden Umgebung ein Anwenderprogramm ausführt, das
miteinander verknüpfte Programm-Module enthält, dadurch
gekennzeichnet, dass
jedes der Programm-Module (CA) geeignet ist, ein Fenster
zu steuern, und ihm eine jeweilige Datei (250) zugeordnet ist,
welche vom Modul auszuführende Befehle (in 260 und 268)
enthält,
und dass ein erstes Modul (CA) sich eignet zum Schreiben
von Befehlen in die Datei (250) eines zweiten Moduls (CA),
welche von diesem zu verarbeiten ist, ohne eine Kommunikation
mit dem ersten Modul zu beginnen.
10. Vorrichtung nach Anspruch 9, dadurch gekennzeichnet,
dass
eine Mehrzahl von Mediendateien (Bitmap-Dateien, Wave-
Dateien) vorgesehen sind,
und dass mindestens eine dieser Dateien (250), die einem
ersten der Programm-Module (CA) zugeordnet ist, Verweise auf
mindestens eine erste der Mediendateien und mindestens ein
zweites Programm-Modul enthält zur Bildung einer
entsprechenden ersten Mediendarstellung und zum Aufrufen eines zweiten
Programm-Moduls (CA) nach dem Aufrufen des ersten Programm-
Moduls (CA),
dass die dem zweiten Programm-Modul (CA) zugeordnete Datei
einen Verweis auf mindestens eine zweite der Mediendateien zur
Bildung einer entsprechenden zweiten Mediendarstellung
enthält, und dass Mittel zum Beenden des zweiten Programm-Moduls
ohne Rückmeldung an das erste Programm-Modul vorgesehen sind.
11. Vorrichtung nach Anspruch 10, dadurch gekennzeichnet,
dass die den Programm-Modulen zugeordneten Dateien (250)
jeweils einen ersten Abschnitt (260,268) zur Aufnahme von
seitens anderer Programm-Module (CA) gesendeter Befehle haben,
dass das zweite Programm-Modul (CA) Programminstruktionen
(316, 318) zum Senden eines ersten Befehlssatzes an die dem
ersten Programm-Modul (CA) zugeordnete Datei enthält,
dass das erste Programm-Modul (CA) Programminstruktionen
zur automatischen Durchführung des ersten Befehlssatzes ohne
Rückmeldung der Durchführungsergebnisse an das zweite
Programm-Modul enthält, dass das erste Programm-Modul weiterhin
Programminstruktionen zum Senden eines Befehlssatzes (316, 318)
an die dem zweiten Programm-Modul zugeordnete Datei enthält,
und dass das zweite Programm-Modul Programminstruktionen
(318) zur automatischen Durchführung des zweiten Befehlssatzes
ohne Rückmeldung der Durchführungsergebnisse an das erste
Programm-Modul enthält.
12. Vorrichtung nach Anspruch 11, dadurch gekennzeichnet,
dass die dem ersten Programm-Modul zugeordnete Datei (250)
einen zweiten Abschnitt (258, 266) enthält, welcher Angaben über
den Status dieser Datei zur Prüfung durch das zweite Programm-
Modul vor dem Aussenden des ersten Befehlssatzes (DSF)
enthält.
13. Vorrichtung nach Anspruch 12, dadurch gekennzeichnet,
dass der zweite Abschnitt außerdem einen ersten Zeiger (a)
enthält, welcher einem der Befehle in dieser Datei zugeordnet
ist und welcher änderbar ist, um die Hinzufügung des ersten
Befehlssatzes zu der Datei erkennen zu lassen.
14. System nach Anspruch 13, dadurch gekennzeichnet, dass
der zweite Abschnitt weiterhin einen zweiten Zeiger (i)
enthält, welcher auf einen Zustand in der Datei zeigt, die
momentan durch das erste Programm-Modul (CA) verarbeitet wird.
15. Vorrichtung nach Anspruch 12, dadurch gekennzeichnet,
dass die Angaben mindestens einen ersten Status (Bereit) und
einen zweiten Status (Belegt) haben, von denen der erste
Status anzeigt, dass die Datei bereit zur Annahme neuer Befehle
ist, und der zweite Status anzeigt, dass die Datei keine neuen
Befehle annehmen kann.
16. Vorrichtung nach Anspruch 12, dadurch gekennzeichnet,
dass die dem ersten Programm-Modul zugeordnete Datei weiterhin
einen Satz von Parametern (312) umfasst, welche sich auf
Charakteristika des ersten Programm-Moduls (CA) beziehen, der
Programminstruktionen zur Verwendung dieser Parameter bei
Aufruf enthält.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10706695 | 1995-04-07 | ||
JP13938595 | 1995-06-06 | ||
US08/539,806 US5799181A (en) | 1995-04-07 | 1995-10-05 | Bossless architecture and digital cell technology for computer programs |
PCT/JP1996/000821 WO1996031823A1 (en) | 1995-04-07 | 1996-03-28 | Data processing system and method, and computer program architecture |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69624693D1 DE69624693D1 (de) | 2002-12-12 |
DE69624693T2 true DE69624693T2 (de) | 2003-07-31 |
Family
ID=27310898
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69624693T Expired - Fee Related DE69624693T2 (de) | 1995-04-07 | 1996-03-28 | Verfahren und vorrichtung zur ausführung eines anwendungsprogramms |
Country Status (6)
Country | Link |
---|---|
US (1) | US6173391B1 (de) |
EP (1) | EP0819274B1 (de) |
CN (1) | CN1181141A (de) |
AU (1) | AU5121296A (de) |
DE (1) | DE69624693T2 (de) |
WO (1) | WO1996031823A1 (de) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ATE197743T1 (de) | 1995-08-04 | 2000-12-15 | Belle Gate Invest B V | Datenaustauschlsysteme mit tragbaren datenverarbeitungseinheiten |
US6385645B1 (en) * | 1995-08-04 | 2002-05-07 | Belle Gate Investments B.V. | Data exchange system comprising portable data processing units |
WO1999040512A1 (en) * | 1998-02-09 | 1999-08-12 | Reuters, Ltd. | Method and system for user defined interactions between plurality of active software applications |
EP1118203A1 (de) | 1998-09-29 | 2001-07-25 | Sun Microsystems, Inc. | Überlagerung von daten über sprache |
US6823520B1 (en) * | 1999-01-22 | 2004-11-23 | Sun Microsystems, Inc. | Techniques for implementing security on a small footprint device using a context barrier |
US7093122B1 (en) | 1999-01-22 | 2006-08-15 | Sun Microsystems, Inc. | Techniques for permitting access across a context barrier in a small footprint device using shared object interfaces |
US6633984B2 (en) | 1999-01-22 | 2003-10-14 | Sun Microsystems, Inc. | Techniques for permitting access across a context barrier on a small footprint device using an entry point object |
US6907608B1 (en) * | 1999-01-22 | 2005-06-14 | Sun Microsystems, Inc. | Techniques for permitting access across a context barrier in a small footprint device using global data structures |
US6922835B1 (en) | 1999-01-22 | 2005-07-26 | Sun Microsystems, Inc. | Techniques for permitting access across a context barrier on a small footprint device using run time environment privileges |
DE69942620D1 (de) | 1999-06-10 | 2010-09-02 | Belle Gate Invest B V | Vorrichtung zum speichern unterschiedlicher versionen von datensätzen in getrennten datenbereichen uin einem speicher |
WO2001040910A1 (en) * | 1999-12-06 | 2001-06-07 | De Jong, Eduard, Karel | Computer arrangement using non-refreshed dram |
JP4824240B2 (ja) * | 1999-12-07 | 2011-11-30 | オラクル・アメリカ・インコーポレイテッド | 安全な写真担持用識別装置及びこのような識別装置を認証する手段及び方法 |
BR9917574A (pt) | 1999-12-07 | 2002-08-06 | Sun Microsystems Inc | Meio legìvel por computador com microprocessador para controlar a leitura e computador disposto para se comunicar com tal meio |
CA2416844A1 (en) | 2000-07-20 | 2002-01-31 | Belle Gate Investment B.V. | Method and system of communicating devices, and devices therefor, with protected data transfer |
CN102750348A (zh) * | 2012-06-08 | 2012-10-24 | 中国航空工业集团公司西安飞机设计研究所 | 一种新型数据处理方法 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4724521A (en) | 1986-01-14 | 1988-02-09 | Veri-Fone, Inc. | Method for operating a local terminal to execute a downloaded application program |
JPH05165933A (ja) * | 1991-12-18 | 1993-07-02 | Hitachi Software Eng Co Ltd | 図形処理システム |
FR2690260B1 (fr) * | 1992-04-17 | 1997-01-03 | Bull Sa | Utilisation d'un protocole bidirectionnel de tres haut niveau pour la communication entre un systeme hypermedia et une pluralite d'editeurs. |
US5440677A (en) * | 1992-07-01 | 1995-08-08 | Time Warner Interactive Group Inc. | Method and apparatus for processing audio and graphic images to create an interleaved file suitable for use as a CD-ROM product |
US5339430A (en) | 1992-07-01 | 1994-08-16 | Telefonaktiebolaget L M Ericsson | System for dynamic run-time binding of software modules in a computer system |
US5369766A (en) | 1993-03-25 | 1994-11-29 | Taligent, Inc. | Object-oriented loader system with support for different load formats |
US5590271A (en) | 1993-05-21 | 1996-12-31 | Digital Equipment Corporation | Interactive visualization environment with improved visual programming interface |
WO1994028480A1 (en) * | 1993-05-24 | 1994-12-08 | Media Station, Inc. | Interactive multimedia development system and method |
US5404529A (en) | 1993-07-19 | 1995-04-04 | Taligent, Inc. | Object-oriented interprocess communication system interface for a procedural operating system |
US5555376A (en) * | 1993-12-03 | 1996-09-10 | Xerox Corporation | Method for granting a user request having locational and contextual attributes consistent with user policies for devices having locational attributes consistent with the user request |
US5724508A (en) * | 1995-03-09 | 1998-03-03 | Insoft, Inc. | Apparatus for collaborative computing |
US6006328A (en) * | 1995-07-14 | 1999-12-21 | Christopher N. Drake | Computer software authentication, protection, and security system |
-
1996
- 1996-03-28 DE DE69624693T patent/DE69624693T2/de not_active Expired - Fee Related
- 1996-03-28 CN CN96193106A patent/CN1181141A/zh active Pending
- 1996-03-28 AU AU51212/96A patent/AU5121296A/en not_active Abandoned
- 1996-03-28 WO PCT/JP1996/000821 patent/WO1996031823A1/en active IP Right Grant
- 1996-03-28 EP EP96907687A patent/EP0819274B1/de not_active Expired - Lifetime
-
1998
- 1998-02-18 US US09/025,529 patent/US6173391B1/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP0819274A1 (de) | 1998-01-21 |
AU5121296A (en) | 1996-10-23 |
DE69624693D1 (de) | 2002-12-12 |
US6173391B1 (en) | 2001-01-09 |
EP0819274B1 (de) | 2002-11-06 |
CN1181141A (zh) | 1998-05-06 |
WO1996031823A1 (en) | 1996-10-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69303289T2 (de) | Steuersystem für anzeigemenüzustand | |
DE69310188T2 (de) | Objektorientiertes bestaetigungssystem | |
DE69310201T2 (de) | Objektorientierte applikationsschnittstelle. | |
DE69310214T2 (de) | Dialogsystem | |
DE69311359T2 (de) | Befehlssystem | |
DE69310934T2 (de) | Ballonhilfssystem. | |
DE69310202T2 (de) | Internationales datenverarbeitungssystem | |
DE69304928T2 (de) | Atomares befehlsystem | |
DE69310187T2 (de) | Objektorientiertes fachwerksystem | |
DE69400204T2 (de) | Ladesystem | |
DE60319229T2 (de) | Verfahren und system zur erweiterung der api eines dateisystems | |
DE69400436T2 (de) | Run-time lader | |
DE69425017T2 (de) | Verkapselung in Objekten von extrahierten Teilen von Dokumenten | |
DE69428988T2 (de) | Interaktive anwenderschnittstelle | |
DE69400862T2 (de) | Kollaboratives arbeitssystem | |
DE69400433T2 (de) | Kollaboratives arbeitssystem | |
DE69535524T2 (de) | Anwenderdefinierbare graphische schnittstelle für informationszugriff in einem elektronischen dateisystem | |
DE69615470T2 (de) | Darstellung von Beziehungen zwischen graphischen Objekten in einer Rechneranzeigevorrichtung | |
DE69129959T2 (de) | Elektronisches Dokumentenaufbereitungssystem | |
DE69714854T2 (de) | Verknuepfen von information mit videodaten und zugreifen auf infrmation aus videodaten | |
DE69620301T2 (de) | Fensterverwaltung | |
DE69624693T2 (de) | Verfahren und vorrichtung zur ausführung eines anwendungsprogramms | |
DE69525249T2 (de) | Umschaltung zwischen darstellungs-/verhaltensthemen in graphischen benutzeroberflächen | |
DE69635337T2 (de) | Erweiterbares und austauschbares system von netzwerkkomponenten | |
DE3852034T2 (de) | Hilfe-bereitstellung in einer datenverarbeitungsanlage. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |