DE3853274T2 - Verfahren und Vorrichtung zur Aufteilung von Datenverarbeitungsfunktionen zwischen mehreren Prozessoren. - Google Patents
Verfahren und Vorrichtung zur Aufteilung von Datenverarbeitungsfunktionen zwischen mehreren Prozessoren.Info
- Publication number
- DE3853274T2 DE3853274T2 DE3853274T DE3853274T DE3853274T2 DE 3853274 T2 DE3853274 T2 DE 3853274T2 DE 3853274 T DE3853274 T DE 3853274T DE 3853274 T DE3853274 T DE 3853274T DE 3853274 T2 DE3853274 T2 DE 3853274T2
- Authority
- DE
- Germany
- Prior art keywords
- data
- processor
- executable
- data unit
- code
- 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
- 230000006870 function Effects 0.000 title claims description 115
- 238000012545 processing Methods 0.000 title claims description 28
- 238000000034 method Methods 0.000 title claims description 20
- 230000005540 biological transmission Effects 0.000 claims description 4
- 230000002452 interceptive effect Effects 0.000 claims description 3
- 239000013256 coordination polymer Substances 0.000 description 46
- 238000012546 transfer Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 239000003550 marker Substances 0.000 description 4
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- HTRJZMPLPYYXIN-UHFFFAOYSA-N 2-acetamido-3-[[4-[(2-acetamido-2-carboxyethyl)sulfanylcarbothioylamino]phenyl]carbamothioylsulfanyl]propanoic acid Chemical compound CC(=O)NC(C(O)=O)CSC(=S)NC1=CC=C(NC(=S)SCC(NC(C)=O)C(O)=O)C=C1 HTRJZMPLPYYXIN-UHFFFAOYSA-N 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000001404 mediated effect Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/103—Formatting, i.e. changing of presentation of documents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/45—Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Artificial Intelligence (AREA)
- Software Systems (AREA)
- Document Processing Apparatus (AREA)
- Multi Processors (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
Description
- Die vorliegende Erfindung betrifft die elektronische Datenverarbeitung und insbesondere ein verbessertes Verfahren zur Aufteilung der Ausführung von Funktionen, die auf großen Dateneinheiten zwischen mehreren Prozessoren ausgeführt werden.
- Mit dem Erscheinen von dedizierten Textverarbeitungssystemen auf Mikroprozessorbasis und Personal Computern machte die Textverarbeitung einen riesigen Sprung. Vorhergehende Textverarbeitungsprogramme auf Großrechnerbasis, denen eine große Bandbreite zwischen Hauptspeicher und Textanzeige an einer Datenstation fehlte und die ein Time Sharing des Programms zwischen mehreren Anwendern erforderten, konnten keine ausreichende Geschwindigkeit für ein Echtzeit-Textverarbeitungssystem (WP, word prozessor) vom Typ "wysiwyg" (what you see is what you get) erreichen. Gegenwärtig verfügbare Personal Computer und dedizierte Textverarbeitungssysteme implementieren erfolgreich diesen Typ von WP für einen einzelnen Anwender und ihr Gebrauch ist weitverbreitet.
- Es ist jedoch in vielen Fällen wünschenswert, Textverarbeitungsprogramme mit hoher Geschwindigkeit beispielsweise in Minicomputern für mehrere Anwender unterzubringen. Die Kosten eines Minicomputers mit Datenstationen, die für jedermann in einer Abteilung arbeiten, sind viel geringer als die Kosten für die Bereitstellung von einzelnen Personal Computern und Programmen für jeden, und es gibt andere Vorteile, wie z.B. die zentrale Speicherung von Abteilungs-Datensätzen. Die wachsenden Kosten für die Bereitstellung von Textverarbeitung (WP) auf einem solchen Minicomputer wären niedrig; aber die Geschwindigkeiten sind noch nicht annähernd hoch genug, um die Art von WP-Funktionen bereitzustellen, welche man von Einzelanwendermaschinen erwartet.
- EP-A-0 106 349 beschreibt ein Verfahren zur Steuerung eines Computersystems auf Time Sharing-Basis, bei welchem die jeweiligen Befehle eines verteilten Computersystems, bestehend aus einem Computersystem mit einem Befehlssystem, und einem Datenverarbeitungssystem (Datenstationscomputer und ähnliche) mit einem Befehlssystem hat, die durch eine allgemeine Befehlsschnittstelle genutzt werden können und irgendwelche Befehle von derselben Vorrichtung genutzt werden können.
- Ein Verfahren zur Implementierung von Textverarbeitungsfunktionen und anderer Programme, die eine Hochgeschwindigkeits-Interaktion mit einer Anzeige erfordern und an denen große Datenmengen beteiligt sind, ist bekannt, aber dieses Verfahren wurde ursprünglich im Zusammenhang mit einem Minicomputer entwickelt, der eine Datenstationssteuereinheit auf Mikroprozessorbasis und eine Anzahl daran angeschlossener '"nichtintelligenter" Datenstationen hat. Systemanwender schließen immer mehr "intelligente" Datenstationen oder Personal Computer unter Benutzung von Software zur Datenstationsemulation an derartige Minicomputer an.
- Wo ein derartiger Personal Computer oder eine grafikfähige Datenstation mit der zentralen Verarbeitungseinheit verbunden ist, würden bedeutende Vorteile entstehen, falls die Funktionsteilung zwischen ihnen verschoben würde, um die Vorteile der besten Eigenschaften beider Prozessortypen auszunutzen. Insbesondere hat ein zentraler Minicomputer allgemein mehr Funktionen und Leistung, aber ein Personal Computer hat Vorteile im Bereich der Anwenderschnittstelle und bestimmter anderer Leistungsaspekte.
- EP-A-0 108 899 beschreibt ein elektronisches Dokumentenverteilsystem, das ein Netz kommunizierender Datenprozessoren und Kommunikationsverbindungen zwischen diesen Prozessoren aufweist. Jeder der Prozessoren hat Mittel für das Empfangen und Mittel für das Übertragen eines einheitlichen Datenstroms, der den Inhalt und das Format des Dokumentes ebenso darstellt wie auch die bezüglich dieses Dokumentes auszuführende Verarbeitung. Das Netz umfaßt Prozessoren höheren Niveaus, die ein höheres Niveau der Datenverarbeitungsfähigkeit hinsichtlich des Datenstroms haben, und mindestens einen Prozessor niedrigeren Niveaus, der ein niedrigeres Niveau der Datenverarbeitungsfähigkeit hinsichtlich desselben Datenstroms hat. Der mindestens eine Prozessor niedrigeren Niveaus umfaßt Mittel zum Auswählen und Verarbeiten eines Teils eines empfangenen Datenstroms innerhalb der Fähigkeit des Prozessors niedrigeren Niveaus, und Mittel für das unveränderte Übertragen des gesamten empfangenen Datenstroms, ungeachtet dessen, ob die Daten verarbeitet wurden, wodurch ein einzelner einheitlicher Datenstrom ungeachtet der verschiedenen Verarbeitungsfähigkeiten der Prozessoren in dem System verwendet werden kann.
- Die vorliegende Erfindung wird in den Ansprüchen 1 und 5 dargelegt. Sie liefert Verbesserungen gegenüber dem oben beschriebenen Verfahren, die Textverarbeitung und andere interaktive Tasks ermöglichen, wobei große Dateneinheiten beteiligt sind, um schneller und leistungsfähiger zu arbeiten, wenn ein zentraler Mehrplatz-Datenprozessor an Hochleistungs-Hilfsprozessoren angeschlossen ist, wobei jeder nur einem einzelnen Anwender bedient.
- Allgemein gesagt teilt die Erfindung die einzelnen Funktionen einer gesamten Task in zwei Kategorien. Funktionen der ersten Kategorie beziehen sich im allgemeinen auf Operationen an einem großen Teil der Dateneinheit, die in dem zentralen Prozessor gespeichert ist. Funktionen der Kategorie eins werden vollständig in dem zentralen Prozessor durch den dort gespeicherten Code ausgeführt. Funktionen der Kategorie zwei betreffen Operationen, die zumindest potentiell kleinere Anteile der Dateneinheit beanspruchen. Diese Funktionen werden vollständig in dem kleineren Hilfsprozessor ausgeführt, falls der Datenanteil schon in dem Hauptspeicher des Hilfsprozessors gespeichert ist oder einfach an ihn übertragen werden kann. Falls eine Funktion der Kategorie zwei mehr von der Dateneinheit beansprucht, als gespeichert oder übertragen werden kann, dann kann das Verfahren der aufgeteilten Funktionen der oben beschriebenen Anwendung aufgerufen werden, um einen Teil der Funktion in dem Hilfsprozessor und einen Teil derselben Funktion in dem zentralen Prozessor auszuführen.
- FIG. 1 ist ein Übersichts-Systemdiagramm eines Datenverarbeitungssystems, auf dem die Erfindung ausgeführt werden kann.
- FIG. 2 zeigt die Hauptspeicherpositionen von Daten und verteiltem Funktionscode, die in der Erfindung verwendet werden.
- FIG. 3 ist ein Übersichts-Flußdiagramm eines Textverarbeitungsprogramms, in das verteilte Funktionen implementiert werden können.
- FIG. 4 ist ein Flußdiagramm der Operation "Block löschen" von Fig. 3.
- FIG. 5 detailliert die Funktion "Zeichen finden" von Fig. 4.
- FIG. 6 detailliert die Funktion "Zeichen löschen" von Fig. 4.
- FIG. 7, die aus FIG. 7A und 7B besteht, ist ein Flußdiagramm der Operation "kontinuierliches Einfügen" unter Verwendung verteilter Funktionen.
- FIG. 8 zeigt die Hauptspeicherpositionen von Daten und Code, die in der vorliegenden Erfindung verwendet werden.
- FIG. 9 ist ein Flußdiagramm eines Verfahrens gemäß der Erfindung, das sowohl den Steuer- als auch den Datenfluß zeigt.
- FIG. 1 zeigt einen allgemein verfügbaren IBM System/36 Datenprozessor 100, der als eine Umgebung für die vorliegende Erfindung dienen kann. Kurz gesagt umfaßt der zentrale Prozessor 110 den Hauptspeicherprozessor (MSP) 111 zur Ausführung von Anwendungsprogrammen vom Schreib/Lese-Hauptspeicher 112, der auch Daten verschiedener Arten enthält. Der Steuerspeicherprozessor (CSP) 113 führt Betriebssystem-Tasks niedrigeren Niveaus vom Schreib/Lese-Steuerspeicher 114 aus. CSP 113 steuert die Kanallogik 115 zur Übertragung von Daten mit hoher Geschwindigkeit zum und vom Kanalbus 120. Am Kanalbus 120 sind verschiedene Typen von Eingabe/Ausgabe- (E/A-) Gerätesteuereinheiten angeschlossen. Datenstations-Steuereinheiten (WSCs) 130 verbinden Datenstationen 140, wie z.B. interaktive alphanumerische Anzeigen 141, Drucker 142 und Personal Computer 145. Steuereinheiten 130 können lokal an Bus 120 oder entfernt durch eine Kommunikationssteuereinheit 143 angeschlossen sein. Der zentrale Prozessor 110 und die WSCs 130 kommunizieren über einen herkömmlichen Datenstrom miteinander, der eine Folge von Rahmen aufweist, die verschiedene Befehle und Parameter zur Übertragung der Steuerinformationen und des Inhalts der Bildschirme tragen. Normalerweise arbeitet der zentrale Prozessor 110 als ein Masterprozessor, während WSC 130 als abhängiger Prozessor arbeitet. Das heißt, Prozessor 110 sendet Befehle an WSC 130, die Programmmodule abarbeitet, um die Befehle auszuführen, und dann über den Datenstrom Antworten an Prozessor 110 zurücküberträgt. Die Antworten können AID-Zeichen (AIDs, attention identifiers) umfassen, die eine Betätigung einiger Datenstationstasten durch den Bediener anzeigen.
- Anzeigedatenstationen 141 können allgemein verfügbare Produkte, wie z.B. Datenstationen der Typen IBM 5250 Modell 11, IBM 5291, IBM 5292 oder IBM 3180 Modell 2 sein, die durch ein Mehrfachkabel 144 mit den Steuereinheiten 130 kommunizieren. Jede Steuereinheit 130 umfaßt einen E/A-Prozessor (EAP) 131, einen E/A- Hauptspeicher, der die Daten und den Programmcode für EAP 131 enthält, und einen Buskoppler 133, der Ports zur Übertragung von Daten über den E/A-Prozessor 131 zwischen dem E/A-Hauptspeicher 132 und dem Bus 120 und zwischen Hauptspeicher 132 und Kabel 144 enthält. Die herkömmliche Funktion des Prozessors 131 ist es, Programme auszuführen, die sich im Hauptspeicher 132 befinden, um Datenströme mit hoher Funktionalität die von CP 110 empfangen werden, in einfachere, basisbezogenere Befehle umzuwandeln, die von den untergeordneteten Datenstationen 141 verstanden werden können, und umgekehrt. In anderen Prozessororganisationen könnte die Steuereinheit 130 ein physikalischer Teil einer intelligenten Datenstation sein, statt mit dem zentralen Prozessor oder in einem eigenen Gehäuse als eine freie Einheit angeordnet zu sein.
- Personal Computer 145 können allgemein verfügbare Produkte sein, wie z.B. die Einheiten IBM 5150, 5160, 5170 oder PS/2 (TM). Herkömmlicherweise sind derartige Einheiten über eine Adapterkarte und Emulatorsoftware an ein Mehrfachkabel 144 angeschlossen, die den Personal Computer für WSC 130 als eine Datenstation erscheinen lassen, wie z.B. die oben beschriebenen Datenstationen. Normalerweise beschränkt eine derartige Emulatorsoftware ernsthaft die Ausführung jeder anderen Funktion in dem Personal Computer oder blockiert sie völlig, während der Emulator aktiv ausgeführt wird. Aber, wie weiter unten ausführlicher beschrieben, fügt die Erfindung der Emulatorsoftware weiteren Code hinzu, um dem Personal Computer zu gestatten, zusätzliche Funktionen zur gleichen Zeit auszuführen.
- FIG. 2 ist ein Hauptspeicherabbild 200, das darstellt, wie die Möglichkeit der verteilten Funktionen den WP-Code zur Verarbeitung in dem früheren Verfahren aufteilt, das in der oben erwähnten Anwendung beschrieben wird.
- Der Hauptspeicher 112, Fig. 1, enthält ein vollständiges zu bearbeitendes Dokument 210. (Ein Teil des Dokumentes kann sich physisch in einer Plattendatei befinden, aber dies ist offenkundig.) Dieses Dokument wird in Seiten 211 aufgeteilt. Zu irgendeiner gegebenen Zeit befindet sich ein Block 212 des Dokumentes in einem Puffer 220, der im Hauptspeicher 132 der Steuereinheit 130 definiert ist. Tatsächlich enthält dieser Puffer nur eine einzige Datenzeile für jede Datenstation, die mit ihrem Kabel 144 verbunden ist; ein Aktualisierungspuffer (nicht gezeigt) in jeder Datenstation 141 sorgt dafür, daß der vollständige Bildschirm laufend angezeigt wird, und wird, wenn notwendig, von Puffer 220 aktualisiert. Diese Einzelheit der Implementierung ist jedoch für den vorliegenden Zweck offenkundig; zum Zwecke der Beschreibung werden Daten 221 im Puffer 220 so behandelt, als würden sie den ganzen gegenwärtig angezeigten Bildschirm beinhalten. Wenn WSC 130 mehr Daten vom Dokument 210 anfordert, um die Verarbeitung fortzusetzen, überträgt die Auslagerungsroutine 231 vom WSC-Mikrocode 230, der im IOP 131 gespeichert ist, den Pufferinhalt zurück an Block 212; dann empfängt sie einen anderen Block 213 als neue Daten 221 im Puffer 220. WSC 130 hat keinen direkten Zugriff auf den Hauptspeicher 112; der Prozessor 110 hat ebenso weder Zugriff auf den E/A-Hauptspeicher 132, noch auf den Aktualisierungspuffer in den Datenstationen 141. Diese und andere Übertragungen zwischen Puffer 220 und Dokument 210 werden tatsächlich über den Datenstrom zwischen den beiden Prozessoren ausgeführt. Zum Beispiel führt die WSC den Mikrocode aus, um auf den Puffer 221 in ihrem adressierbaren Hauptspeicher 132 zuzugreifen, packt den Pufferinhalt in Datenstromrahmen und überträgt sie an den zentralen Prozessor 110. Der Prozessor 110 empfängt und decodiert die Rahmen und schreibt die Daten zu den entsprechenden Adressen im Hauptspeicher 112.
- Obwohl der Datenstrom ein herkömmlicher Teil des allgemein verfügbaren IBM System/36 ist, ist ein kurzer Überblick über die CP-zu-WSC-Kommunikation hilfreich für das Verständnis, wie die für die Erfindung erheblichen Daten in dieser Ausführungsform der Erfindung tatsächlich transportiert werden. Eine Kommunikation beginnt, wenn CP 110 über Kanal 120 eine Unterbrechung an die WSC 130 sendet. Dies wird durch ein Programm gesteuert, das in CSP 113 läuft wird, das für die Ausführung des Datenstations- Subsystems bestimmt ist und wirksam wird, wenn ein Anwendungsprogramm, das in MSP 112 abläuft, einen Befehl an eine Anzeige absetzt oder wenn das CSP-Programm selbst nichts anderes zu tun hat und einen Befehl "Auffordern" absetzt, um zu bestimmen, ob neue Daten verfügbar sind oder benötigt werden. WSC 130 reagiert auf die Unterbrechung durch Anfordern eines Datenstations-Steuerfeldes (WSCF, Workstation Control Field) von einer bekannten Position in MS 112 durch eine Zyklenteil-Übertragung (direkter Hauptspeicher-Zugriff oder DMA, direct memory access) über Kanal 120. (Zyklenteilungen werden von CSP 113 vermittelt, der Daten im Hauptspeicher 112 direkt adressieren kann.) Das WSCF kann ein Befehl, wie z.B. "Bildschirm Lesen" sein, der einen Operationscode, einen Anzeigebezeichner und einen maximalen Bytezähler aufweist.
- WSC 130 decodiert das WSCF und leitet die Übertragung eines Datenstromrahmens ein, um die Anforderung auszuführen. Sie variieren stark in der Länge, von 8 Byte bis zu mehr als 12.000 Byte. Jeder Rahmen beinhaltet ein Abbruchzeichen und ein Befehlsbyte. Das Befehlsbyte kennzeichnet das Format des übrigen Rahmens. Rahmen, die für die Erfindung von Bedeutung sind, können zwei Byte haben, welche die gesamte Rahmenlänge kennzeichnen, Klassen- und Typbytes, welche die Interpretation zur Abstimmung der nachfolgenden Daten codieren, ein oder mehrere Markierungsbytes und die Daten von dem Bildschirm. Diese Daten selbst können in Datensätze strukturiert oder formatiert werden, die Anzeigezeilen darstellen, wobei jede Zeile ein Markierungsbyte und ein Längenbyte hat.
- WSC 130 sendet den formatierten Datenstromrahmen über Kanal 120 mittels Zyklenteilung in den Hauptspeicher 112. Die WSC sendet dann das WSCF mit einem Abschlußcode zurück an seinen Standort im Hauptspeicher und gibt eine Unterbrechung an CSP 113 vom CP 110 aus. Das Datenstations-Subsystemprogramm liest dann das WSCF und bestimmt, was als nächstes zu tun ist. Dieses Verfahren und der Datenstrominhalt ändern sich von einem Modell eines Datenverarbeitungsprozessors zum anderen und können auf viele verschiedene Arten innerhalb des Konzeptes der Erfindung ausgeführt werden.
- In der vorliegenden Erfindung speichert IOP 130 auch einen Teil des Codes für ein WP und führt ihn aus, ein Anwendungsprogramm, das herkömmlicherweise vom zentralen Prozessor 110 in MSP 111 als ein einzelnes Programm ausgeführt werden würde, das sich im Hauptspeicher 112 befindet. Der im Hauptspeicher 112 befindliche WP-Code 240 beinhaltet Hauptroutinen 241 und einzelne Funktionen, wie z.B. eine Löschfunktion 242, eine Zeichensuchfunktion 243, eine kontinuierliche Einfügefunktion 244 und andere Funktionen 245. Der im E/A-Hauptspeicher 132 gespeicherte WP-Code 250 beinhaltet Hilfsroutinen 251 und Teile einiger derselben Funktionen der "verteilten Funktionen", die sich in dem Hauptspeicher befinden. Eine Tabelle anstehender Daten 260 im E/A- Hauptspeicher beinhaltet Einheiten zur Koordinierung der Ausführung dieser Funktionen. Ein Abbild der Tabelle 260 wird in einem Bereich 270 des Hauptspeichers 112 geführt. Das Abbild wird durch Übertragen der Tabelle 260 zum Hauptspeicher 112 in dem Datenstrom jedesmal aktualisiert, wenn CP 110 den Bildschirm liest; dementsprechend wird Tabelle 260 von den Daten in Bereich 270 jedesmal aktualisiert, wenn CP 110 einen Bildschirm an WSC 130 schreibt. Die relevanten Daten in Tabelle 260 werden in der Tabelle unten gezeigt: Feld Name Länge (Bytes) Bit Nr. Beschreibung Markierg. Verschobene Zeichen Start Suchen Einfügemodus ist für diese Anzeige eingeschaltet Suchmodus ist für diese Anzeige eingeschaltet eine aktive Kopier-, Verschiebungs- oder Löschoperation wurde abgeschlossen, und CP hatte einen Hinweis angefordert eine aktive Kopier-, Verschiebungs- oder Löschoperation wurde abgebrochen, und CP hatte einen Hinweis angefordert ein Löschvorgang ist gerade aktiv ein Kopiervorgang ist gerade aktiv ein Verschiebungsvorgang ist gerade aktiv (die übrigen Bits sind nicht von Bedeutung) (nicht von Bedeutung) Zeichen Position des ersten Zeichens in einer Kopier-, Verschiebungs- oder Löschoperation anzuordnender Zeichencode während einer CP-unterstützten Suchoperation
- Die speziellen verteilten Funktionen, die hierin als Beispiele zu beschreiben sind, sind die Lösch-, Zeichensuch- und Einfügefunktionen, deren Hilfscode im E/A-Hauptspeicher 132 jeweils durch 252 bis 254 gekennzeichnet ist.
- FIG. 3 ist ein Übersichts-Flußdiagramm eines Programms 300 zur Ausführung der Hauptroutinen von IBM DisplayWrite/36, einem Textverarbeitungssystem 241, welches das Konzept der verteilten Funktionen der obenerwähnten Anwendung verwendet. Das Programm 300 wird im zentralen Prozessor 110 ausgeführt; insbesondere wird es im Hauptspeicher 112 gespeichert und von MSP 111 ausgeführt, Fig. 1. Nach dem Start 310 fordert das Programm 320 den Bediener auf, eine Task, wie z.B. Drucken 330, Löschen eines Dokumentes 340, Editieren 350 (Erstellen oder Andern) eines Dokumentes oder Beenden des WP-Programms 360 auszuwählen. Wenn die ausgewählte Task beendet ist, kehrt die Steuerung 370 zu Block 320 für eine andere Auswahl zurück.
- Innerhalb jeder Task kann der Bediener einzelne Funktionen auswählen, die auszuführen sind, möglicherweise auf verschiedenen Detailebenen. Während des Editierens von Dokumenttext beispielsweise zeigt Block 351 einen Bildschirm 221 von Dokument 210 an. Der Bediener kann Tastaturtasten betätigen, um irgendeine einer Anzahl von Funktionen zum Manipulieren von Zeichen in dem Dokument auszuwählen. Diese Funktionen umfassen solche Dinge wie Verschieben 352, Kopieren 353 und Einfügen 354 von Textzeichen, Andern 355 des Textformates und Beenden 356 der Editierfunktion.
- Eine Anzahl der Funktionen in Programm 300 benutzt das Konzept der verteilten Funktionen.
- FIG. 4 ist ein Flußdiagramm eines Programm-Moduls 400, das die Arbeitsweise der Löschfunktion 354, Fig. 3, detailliert darstellt, als ein Beispiel dafür, wie eine verteilte Funktion gemäß der Erfindung zu implementieren ist. Das Programm 400 wird in der WSC 130 ausgeführt; das heißt, es wird im E/A-Hauptspeicher 132 gespeichert und vom E/A-Prozessor 131 ausgeführt. (Es kann von einer Diskette zum Zeitpunkt des einleitenden Programmladens übertragen werden.) Das Programm 400 beginnt, wenn der Bediener eine Taste "Löschen" an der Datenstation betätigt.
- Die Blöcke 410 definieren die Funktion. Der Code setzt ein Bit "Löschen Aktiv" 411 in Tabelle 260, Bit 4 in dem FF-Feld in der obigen Tabelle, speichert 412 den Ort des ersten Zeichens in dem Block (d.h. die Cursorposition) in dem Feld "Start", verändert 413 das Attribut des ersten Zeichens auf inverse Darstellung und zeigt 414 eine Bedienerführung, wie z.B. "WAS LÖSCHEN?", auf dem Bildschirm an, wobei der Bediener aufgefordert wird, den Ort des letzten Zeichens in dem Block zu kennzeichnen. Der Bediener kann dann 421 eine Cursor-Taste betätigen, um den Cursor zu einem anderen Zeichen zu bewegen. Block 430 bewegt dann die aktuelle Cursorposition. Anderenfalls kann der Bediener 422 eine Zeichentaste auf der Tastatur betätigen, um Block 440 zu veranlassen, das nächste Auftreten dieses Zeichens in dem Dokument zu suchen, angefangen an der aktuellen Cursorposition. Nachdem entweder Block 430 oder Block 440 beendet ist, kehrt die Steuerung zum Auswahlblock 420 zurück. Das heißt, irgendeine Kombination der zwei Verfahren 430 bis 440 kann in irgendeiner Reihenfolge verwendet werden, um einen einzelnen zu löschenden Block zu definieren. Die verbleibende Alternative von Auswahl 420 tritt auf, wenn der Bediener die Eingabetaste 423 betätigt, um zu kennzeichnen, daß die aktuelle Cursorposition das Ende des Blocks lokalisiert. Code 450 löscht dann alle Zeichen zwischen der gespeicherten ersten Zeichenposition und der aktuellen Cursorposition und aktualisiert die Anzeige.
- FIG. 5 ist ein Flußdiagramm 500, das zeigt, wie die Ausführung von Block 440, Fig. 4, zwischen IOP 131 der Datenstations-Steuereinheit 130 und MSP 111 des zentralen Prozessors 110, Fig. 1, verteilt wird. In Fig. 5 sind die Schritte, die in WSC 130 ausgeführt werden, durch ein vorangestelltes "W" gekennzeichnet, während jene, die in CP 110 ausgeführt werden, ein "C" tragen. Wenn eine Tastenbetätigung 422 eine Zeichensuchfunktion 440, Fig. 4, aktiviert, durchsucht Block W510 den aktuellen Bildschirm 221 (gespeichert im E/A-Hauptspeicher 132) nach dem Tastencode der betätigten Taste zwischen der aktuellen Cursorposition und dem Ende des Bildschirms. Falls Block W520 diesen Code findet, führt W530 die Suchfunktion durch Bewegen des Cursors zur Endezeichenposition aus. In diesem Fall wird die gesamte Suchfunktion in WSC 130 ohne irgendeine Beteiligung von CP 110 ausgeführt, der somit andere Tasks zur gleichen Zeit ohne Unterbrechung ausführen kann.
- Falls aber W520 den gewünschten Zeichencode bis zum Ende des aktuellen Bildschirms nicht findet, fordert Block W540 CP 110 auf, die Suchfunktion auszuführen. Insbesondere sendet Block W540 die anstehende Datentabelle 260 in einem Datenstromrahmen an CP 110 und er sendet auch ein hostunterstütztes Such-AID (attention identifier), das anzeigt, daß die Suchfunktion auszuführen ist. Code C510 sichert den Inhalt von Tabelle 260 in einem Bereich 270 des Hauptspeichers 112. CP 110 durchsucht dann C520, den Rest von Dokument 210, nach dem gekennzeichneten Zeichencode. Sobald Block C530 den Zeichencode findet, beendet Block C540 die Suchfunktion durch Bewegen des Cursors zu dem Endezeichencode. Die Blöcke C550 senden aktualisierte Daten 270 an WSC 130 zurück. Block C551 erzeugt einen neuen mit Zeichen gefüllten Puffer 211, der das Endezeichen beinhaltet, wobei der Cursor unter dem Endezeichen angeordnet ist. Sobald das Zeichen gefunden wurde, überträgt Block C552 an WSC 130 über den Datenstrom: (a) Daten für den neuen Zeichenbildschirm 213;
- (b) einen Befehl, der die Position des Cursors auf dem gesuchten Zeichen innerhalb dieses Bildschirms kennzeichnet;
- (c) Einschalten des Bits "Suchen" in Tabelle 270;
- (d) eine neue Position für das erste Zeichen in Tabelle 270;
- (e) Einschalten des Bits "Host Benachrichtigen" für das Löschen, Bit 4 von Feldmarkierung 1 in Tabelle 270.
- Falls Block C530 das gekennzeichnete Endezeichen in dem Rest von Dokument 210 nicht finden sollte, schreibt Block C560 nur eine Nachricht wie z.B. "ZEICHEN NICHT GEFUNDEN" auf den aktuellen Bildschirm an WSC 130 über den Datenstrom.
- Linie 502 zeigt die Übertragung der neuen Daten zurück an WSC 130 an. Block W550 empfängt und speichert dann den neuen Bildschirm und die Cursorposition für die Anzeige in Datenstation 141.
- Die folgende Tabelle detailliert den Inhalt von Bereich 270 in MS 112, Fig. 1. Feld Name Länge (Bytes) Bit Nr. Beschreibung Markg. Einfügemodus für diese Anzeige ein/ausschalten Suchmodus für diese Anzeige ein/ausschalten Löschoperation in WSC/CP ausführen (Keine Bedeutung) CP beachten/nicht beachten, wenn derzeit aktive Kopier-, Verschiebungs- oder Löschoperation abgeschlossen oder abgebrochen wird (Keine Bedeutung) Kopier-, Verschiebungs- oder Löschoperation gestatten/verbieten Verschobene Startpos. Zeichen (nicht von Bedeutung) (stets ausgeschaltet) Zeilen-Spaltenposition des Starts einer Kopier-, Verschiebungs- oder Löschoperation
- FIG. ist 6 ein Flußdiagramm 600 einer Löschfunktion 450, das zeigt, was geschieht, wenn der Bediener die Taste "Eingabe" betätigt, nachdem er den Block zu löschender Zeichen definiert hat. Wieder wird den von WSC 130 ausgeführten Blöcken ein "W" vorangestellt; ein "C" kennzeichnet Blöcke, die von CP 110 ausgeführt werden.
- Block W610 löscht die Zeichen in dem aktuellen Bildschirm 221 von der angezeigten ersten Zeichenposition bis zu der Endezeichenposition, die durch den Cursor gekennzeichnet ist. Wie vorher beschrieben, ist die erste Zeichenposition der tatsächliche Anfang des Löschblocks, falls der aktuelle Bildschirm derselbe ist, wie der Bildschirm, in dem die Löschoperation gestartet wurde. Anderenfalls ist die erste Zeichenposition das erste Zeichen in dem aktuellen Bildschirm: d.h. dem Bildschirm, in dem die Löschoperation endet. WSC 130 setzt dann das Bit "Löschen Aktiv" (Markierungsbit 4 von Puffer 260) in Block W620 zurück. Die Blöcke W630 synchronisieren die Aufteilung der Funktionen, falls notwendig. Falls das Bit "CP vom Abschluß des Löschens benachrichtigen" (Bit 4 der Markierung 1 von Puffer 270) in Block W631 eingeschaltet ist, setzt Block W632 das Bit "Löschen abgeschlossen" (Markierungsbit 2 in Puffer 260); dieses Bit wurde in Block C552, Fig. 5, gesetzt, falls abzusehen war, daß die Operation mehrere Bildschirme umfaßt. Zu einer späteren Zeit überträgt Block W640 einen Datenrahmen an CP 110. Der Rahmen umfaßt die Datentabelle 260; wie oben erwähnt, werden die Tabellen 260 und 270 gegenseitig durch ihre Daten jedesmal aktualisiert, wenn ein Bildschirm von WSC 130 gelesen oder in CP 110 geschrieben wird.
- WSC 130 verläßt dann den Prozeß zu Block 450, Fig. 4, der wiederum Block 354, Fig. 3, verläßt.
- Wenn CP 110 später C610 liest, den von W640 gesendeten Datenrahmen, prüft es C620 auf das Bit "Löschen abgeschlossen" (Markierungsbit 2 in Puffer 260) . Falls dieses Bit eingeschaltet ist, positioniert Block C630 den Ort des Endezeichens an eine Position in Dokument 210 genau vor dem ersten Zeichen des aktuellen Bildschirms. Dies erfolgt durch Andern des Feldes "Startposition" in Puffer 270. Block C640 löscht alle Zeichen im Dokument 210 ab der gespeicherten (in Puffer 270) ersten Zeichenposition in Bildschirm 212 bis zu der (neuen) Endezeichenposition.
- MSP111 von CP110 fährt dann mit anderen Tasks fort, wie z.B. Anzeigeanforderungen für andere Dokumente. Diese Tasks könnten mit der vorliegenden Erfindung verbunden sein oder nicht.
- Falls die Löschoperation mehr als einen Textbildschirm umfaßt, wird sie daher zwischen den zwei Prozessoren aufgeteilt: WSC 130 löscht die Zeichen auf seinem aktuellen Bildschirm während CP 110 die restlichen Zeichen direkt in Dokument 210 löscht. Falls aber nur der aktuelle Bildschirm einbezogen ist, teilt CP 110 die Löschoperation nicht auf und WSC 130 führt die gesamte Task aus. In beiden Fällen werden alle Zeichen, die in dem aktuellen Bildschirm verändert werden, in Dokument 210 zu einem späteren Zeitpunkt aktualisiert, immer wenn CP 110 ein Lesen des Bildschirms anfordert.
- Eine andere Funktion, die zwischen WSC 130 und dem zentralen Prozessor 110 aufgeteilt wird, ist das kontinuierliche Einfügen neuer Anzeigezeilen, wie es für einen Textzeicheneintrag benötigt wird. Der normale Modus, in dem das Textverarbeitungssystem neue Zeichen in ein Dokument eingibt, ist sie an der Cursorposition einzufügen, wobei alle Zeichen rechts vom Cursor auf der gleichen Zeile eine Position nach rechts geschoben werdend sobald jedes neue Zeichen angezeigt wird. Wenn die Zeile zu lang wird, d.h., wenn ein nicht leeres Zeichen in die rechte Randspalte eintritt, werden diese Zeichen des ganz rechten Wortes in eine neue Zeile bewegt und andere Zeilen werden auf dem Anzeigeschirm auf- oder abwärts verschoben, um Platz für die neue Zeile zu machen. Diese Funktion erscheint als Block 353 in Fig. 3 und wird jedesmal ausgeführt, wenn der Bediener Text eingibt und keine andere Task, wie z.B. Verschieben oder Löschen von Zeichen, aufgerufen hat.
- FIG. 7 stellt Code 700 zur Aufteilung der Einfügefunktion zwischen den zwei Prozessoren dar. Dieser Code ist ein WSC 130-Modul; d.h., der Code befindet sich im Hauptspeicher 132 und wird von Prozessor 131 ausgeführt.
- Wenn der Bediener an 710 eine Zeichentaste betätigt, um neue Zeichen an der Cursorposition in eine bestehende Zeile einzufügen, entscheidet Block 720, ob eine neue Anzeigenzeile erforderlich ist oder nicht. Falls die bestehende Zeile nur leere Zeichen zwischen ihrem äußersten rechten Zeichen und der rechten Randspalte enthält, geht die Steuerung unverzüglich zu den Blöcken 730. Diese Blöcke machen lediglich in der bestehenden Zeile Platz für das einzufügende Zeichen. Block 731 bewegt die Zeichen von der Cursorposition um ein Leerzeichen nach rechts; Block 732 fügt das neue Zeichen in den Raum ein, der somit an der Cursorposition geöffnet wurde.
- Falls die bestehende Zeile schon voll (kein Leerzeichen am rechten Rand) ist, muß eine neue Zeile unterhalb der Cursorposition eingefügt werden. Die Blöcke 740 bestimmen, auf welche Art die bestehenden Anzeigezeilen verschoben werden sollen 750, um Platz für die neue Zeile zu machen. Falls Block 741 findet, daß die letzte (unterste) Textzeile auf der Anzeige nicht modifiziert wurde, seit der jetzige Bildschirm angezeigt wurde, verschiebt Block 751 alle Zeilen unterhalb der Cursorposition nach unten, wobei die letzte Zeile vom Bildschirm verdrängt wird. Es geht keine Information verloren, weil dieselben aktuellen Daten im Anteil 212 von Dokument 210 in MS 112 enthalten sind. Die Blöcke 770 bereiten dann die neue Zeile vor. Block 771 überschreibt unverzüglich alle Zeichen in der Zeile unmittelbar unter dem Cursor mit Leerzeichen. Block 772 führt den Zeilenumbruch des letzten Wortes der Cursorzeile aus; d.h., das ganze Wort, das sein äußerstes rechtes Zeichen in der rechten Randspalte hat, wird zu der neuen Zeile bewegt. Die Blöcke 730 setzen dann das neue Zeichen wie vorhergehend beschrieben ein.
- Falls die letzte Anzeigezeile verändert wurde, Block 742 aber findet, daß die erste (oberste) Textzeile nicht verändert wurde, verschiebt Block 752 alle Zeilen oberhalb der jetzigen Cursorposition aufwärts, wobei die erste Zeile von dem Bildschirm verdrängt wird. Die Blöcke 760 erwarten zukünftige Verschiebebedürfnisse. Block 761 stellt fest, ob weniger als zwei verschiebbare Textzeilen auf dem Bildschirm bleiben; dies können zwei unveränderte Zeilen an der Unterkante des Bildschirms, zwei an der Oberkante oder eine an der Oberkante und eine an der Unterkante sein. Falls weniger als zwei verschiebbare Zeilen bleiben, sendet Block 762 ein AID zur Aktualisierung von Dokument 210 an CP 110. Dies geschieht, wenn Block 763 den Bildschirm zurück an Dokument 210 liest. Block 764 ändert dann den Status aller Bildschirmzeilen auf "unverändert", so daß sie aus dem Bildschirm verschoben werden können, falls erforderlich, ohne irgendwelche von dem Bediener gemachten Veränderungen zu verlieren. Die Steuerung geht dann zu den Blöcken 770 und danach zu den Blöcken 730. Das tatsächliche Bildschirmlesen wird durch CP110 erfolgen, einige Zeit nachdem Block 762 ausgeführt wurde; dies unterbricht den Bediener nicht, der das Eingeben von Zeichen fortsetzen kann.
- Falls die Blöcke 740 feststellen, daß sowohl die erste als auch die letzte Anzeigezeile verändert wurden, seit der Bildschirm angezeigt wurde, würde ein Verschieben in jede Richtung modifizierte Daten zerstören. Dies kann geschehen, falls das durch die Blöcke 760 erfolgte Lesen des Bildschirms nicht schnell genug geschehen kann, um eine verschiebbare Zeile bereitzustellen, ehe sie tatsächlich benötigt wird. Dieser seltene Fall wird von den Blöcken 780 als ein Fehlerzustand behandelt. Block 781 sendet ein AID an CP 110, wobei ein unverzügliches Lesen des Bildschirms angefordert wird. Block 782 signalisiert dem Bediener einen Fehler und sperrt die Tastatur. (Der Bediener muß dann eine Taste "Reset" betätigen und das Zeichen neu eingeben.)
- Die Steuerung kehrt dann zu Block 710 zurück, um das Einfügen von Zeichen fortzusetzen. Falls der Bediener eine Funktionstaste statt einer Zeichentaste betätigt, wird über Ausgang 711 zu Fig. 3 zurückgekehrt.
- Die obige Beschreibung zeigt das Aufteilen verschiedener Funktionen, das Blocklöschen, Zeichensuchen und kontinuierliche Einfügen. Das DW/36 Textverarbeitungssystem teilt andere Funktionen, wie z.B. Verschieben und Kopieren von Zeichenblöcken, auf eine im wesentlichen gleiche Art auf. Die Zeichensuchfunktion wird mit anderen Funktionen, über das Löschen hinaus, verwendet und kann auch selbst als eine eigenständige Funktion verwendet werden.
- Die bevorzugte Ausführungsform für das verbesserte Verfahren der vorliegenden Erfindung verwendet CP 110 als einen Hochleistungs-Zentralprozessor für mehrere Anwender und einen Personal Computer (PC) 145 als Hilfsprozessor mit niedriger Leistung für Einzelanwender. (PC 145 hat natürlich eine Anzeige zur Darstellung von Daten für einen Bediener und eine Tastatur zum Annehmen von Daten und Befehlen von dem Bediener.) In der folgenden Beschreibung arbeitet IOP 130 in einem herkömmlichen "Durchlaß"-Modus, der lediglich Daten zwischen CP 110 und PC 145 hin- und herüberträgt, ohne mit ihnen irgendwelche Textverarbeitungsfunktionen auszuführen.
- Statt Dokumentdaten in Anteilen in Bildschirmpuffergröße hinund herzusenden, überträgt diese Ausführungsform Dokumentdaten als "Seiten" von Text, entsprechend den großen Seiten des Dokumentes zusammen mit genügend Formatierungsinformationen über die Seite, so daß PC 145 die Seite in seinem eigenen Hauptspeicher speichern und formatieren kann. (Im Endeffekt sieht PC 145 die transferierte Seite als ein ganzes Dokument, vollständig mit einer Formatspezifikation.)
- PC 145 führt einen Programmcode aus, der sich in dem PC befindet, um bestimmte Textverarbeitungsfunktionen mit der Seite auszuführen, die in seinem Hauptspeicher zur Verfügung steht. Diese umfassen das Kopieren, Verschieben und Löschen von Text. Wenn eine dieser Funktionen mehr Text erfordert, als in der lokalen Seite zur Verfügung steht, überträgt PC 145 die Funktionsanforderung an CP 110, und CP 110 führt dann die Funktion mit seinem eigenen Code für dieselbe Funktion mit etwaigen Daten in dem Gesamtdokument aus, das sich in dem Hauptspeicher von CP befindet.
- Der Programmcode für bestimmte andere Textverarbeitungsfunktionen wird jedoch immer in CP 110 mit dem gesamten Dokument ausgeführt, wie erklärt werden wird.
- FIG. 8 zeigt die Position des Codes und der Daten, die für die vorliegende Erfindung von Bedeutung sind. Einzelheiten dieser Implementierung sind allgemein als Teile von IBM DisplayWrite/36 (Release 5.1) und IBM PC Support/36 Workstation Feature verfügbar. Insbesondere sind die für die Erfindung bedeutenden Teile meist in der Texthilfsfunktion von PC Support/36 Organizer angeordnet. Ein allgemein verfügbarer Emulator ist das IBM 5250 Enhanced Emulation Program.
- Die Buchstaben "CP" und "IOP" in Fig. 8 bezeichnen Einheiten in dem Hauptspeicher von CP 110 bzw. IOP 130 (Fig. 1). Der verbleibende Code und die Daten werden in dem Hauptspeicher von PC 145 gespeichert. Die "PC Emulator" bezeichnete Spalte beinhaltet herkömmliche Funktionen des obenerwähnten Emulationsprogramms. Die "DOS" bezeichnete Spalte beinhaltet den herkömmlichen Code für ein Betriebssystem und andere Benutzerprogramme für den Personal Computer. Die mittlere Spalte "PC Text Assist" schließt den Code für die vorliegende Erfindung ein.
- FIG. 8 ist ein Hauptspeicherabbild 800, das darstellt, wie die Erfindung in Komponenten zwischen dem Hauptspeicher 810, der mit dem zentralen Prozessor verbunden ist, und dem Hauptspeicher 850 des Personal Computers aufgeteilt ist. Für den vorliegenden Zweck umfaßt der Hauptspeicher 810 Komponenten in dem richtigen Hauptspeicher 810 von CP 110, Fig. 1, und auch dem Hauptspeicher 830 von IOP 130 und irgendeinen zweiten Speicher 840, wie z.B. auf laufenden Plattenstationen die CP 110 zur Verfügung stehen.
- Der Hauptspeicher 820 beinhaltet den Code des Textverarbeitungssystems, der den Steuercode 821 und drei Komponenten 822 bis 824 zur Ausführung verschiedener Kategorien von Funktionen umfaßt.
- Der Steuercode 821 führt eine Anzahl von Editorfunktionen aus, die auf dem PC nicht implementiert sind; siehe die Beschreibung von Emulationsanzeigen unter Fig. 9. Die Seitenverarbeitungsfunktionen 822 sind typisch für ein Textverarbeitungssystem und umfassen die in Verbindung mit Fig. 2 als "verteilte Funktionen" erwähnten Funktionen, wie Einfügen, Löschen, Verschieben, Kopieren, Suchen und so fort; Code 822 wird nur ausgeführt, wenn die angeforderte Funktion mehr Dokumentdaten erfordert, als in dem PC 145 zur Verfügung stehen. Die Dokumentverarbeitungsfunktionen 823 erfordern naturgemäß große Anteile eines Dokuments; diese umfassen typischerweise Rechtschreibprüfung, Seitenumbruch, Drucken und so fort. Code 823 wird immer ausgeführt, wenn eine seiner Funktionen von PC 145 aufgerufen wird. Code 824 umfaßt Dienstfunktionen zur Übertragung von Dokumentseiten zwischen dem CP-Hauptspeicher 810 und dem PC-Hauptspeicher 850 hin und her. Die Seitendienste werden unter Benutzung der Data Stream Passthru-Möglichkeit 831 des E/A-Prozessors 830 ausgeführt; der EAP 130 interpretiert den Datenstrom nicht, sondern leitet ihn unangetastet an den PC-Hauptspeicher 850 weiter.
- Der Speicher 840 enthält das gesamte gerade verarbeitete Dokument 841. Das Dokument wird logisch in eine Anzahl von Seiten 842 unterteilt, wobei jede ungefähr einer Schreibmaschinenseite entspricht. Die Seitenlänge ist jedoch willkürlich und variabel.
- Dokument 841 wird vorzugsweise auf einer Platte gespeichert, wobei Teile durch irgendein herkömmliches Cache- oder Puffermittel in den Arbeitsspeicher gebracht werden; die Speicherung 840 umfaßt konzeptionell alle die Komponenten, die erforderlich sind, um Dokument 841 zu speichern und darauf zuzugreifen.
- Der PC-Hauptspeicher 850 beinhaltet einen herkömmlichen Emulator 860, dessen gesamte Aufgabe es ist, PC 145 für WSC wie eine herkömmliche Datenstation, so wie 141, erscheinen zu lassen. Der Emulator wird unter einem herkömmlichen Betriebssystem, wie IBM PC-DOS, gemeinsam mit einer Anzahl anderer Anwendungsprogramme 880 ausgeführt. Der Texthilfscode (TA-Code) 870 kommuniziert mit Emulator 860 über eine Anzahl eingehender und ausgehender Verbindungen 890; dies sind herkömmliche Steuerblöcke, welche die Übertragung zwischen den verschiedenen Modulen von Code 860 und 870 steuern. Der Texthilfscode 870 gestattet dem Anwender auch den Gebrauch einer Sprungtaste zu dem Betriebssystemcode 880, so daß andere Anwendungsprogramme ausgeführt werden können. Der TA-Code 870 verbleibt während der Ausführung des DOS-Programms 880 im Hauptspeicher, es sei denn, daß DOS ihn ausdrücklich entfernt.
- Der Emulator 860 liefert verschiedene herkömmliche Funktionen 861, die für die Texthilfekomponente 870 nicht von Bedeutung sind.
- Die hauptsächlichen Funktionen umfassen die Emulation 862 selbst, die dem PC 145 gestattet, als eine "nichtintelligente" Datenstation 141 zur Ausführung von Funktionen auf CP 110 zu wirken; siehe wieder die Beschreibung von Emulationsanzeigen in Verbindung mit Fig. 9.
- Der Tastaturmonitor 863 empfängt die Tastenanschläge des Anwenders und leitet sie an einen TA-Tastenbetätigungsprozessor 871 weiter. Das Codemodul 864 übersetzt herkömmliche PC-Tastatur- Suchcodes, um eine ASCII-Anzeige 874 aufzubauen. Der Emulator 860 hat auch eine Komponente 865, um Datenströme in einem bekannten Format zu senden und zu empfangen; Komponente 865 schließt an die TA-Komponente 875 zum Senden des Datenstroms an den WP-Code 820 auf CP 110 an, und eine Komponente 876, die ein Aufteilen des Datenstroms ausführt, um ihn in die richtige Form für Komponente 873 zu bringen.
- Zwei weitere Komponenten von TA 870 kommunizieren nicht direkt mit Emulator 860. Komponente 872 umfaßt einen Code zur Ausführung einer Kategorie von Editierverfahren. Die Verfahren von Komponente 872 führen alle Editierfunktionen innerhalb der aktuellen Textseite aus. Die Funktionen in dieser Kategorie umfassen das Einfügen, Löschen, Kopieren und Verschieben von Text, Zeilenausrichtung und Wortumbruch. Komponente 873 liefert den Code für das Umwandeln des Textdatenstroms, für sein Formatieren gemäß den Seiten- und Zeilenformatdaten von CP 110 und für den Aufbau einer Anzeigenseite, um sie dem Anwender auf dem PC-Anzeigeschirm anzuzeigen.
- Block 891 ist ein Puffer in dem Hauptspeicher von PC 145, der die aktuelle Dokumentseite und ihr Format enthält. Die aktuelle Seite wird im wesentlichen als ein Dokument von einer Seite im Standard-DisplayWrite-Format gespeichert.
- FIG. 9 ist ein Diagramm 900, das den Steuerfluß der bevorzugten Ausführungsform beschreibt. Das Verfahren wird in erster Linie von zwei Programmen ausgeführt: vom Textverarbeitungscode (WP- Code) 930, der die Hauptroutine von IBM DisplayWrite/36 ist, das in CP 110 ausgeführt wird, Fig. 1, und vom Texthilfscode (TA-Code) 940, der ein in PC 145 laufendes Programm ist.
- Die gestrichelte Linie nach unten in der Mitte von FIG. 9 stellt die Grenze zwischen den in CP 110 und den in PC 145 ausgeführten Operationen dar.
- Zuerst kennzeichnet der Anwender in Block 910 ein zu editierendes Dokument. Block 911 liefert den Endcode für das Verlassen des gesamten WP-Programms am Endpunkt 912. Block 913 bestimmt, ob das TA-Programm 940 schon geladen ist; das TA-Programm bleibt resident, solange PC 145 eingeschaltet und die Übertragung nicht unterbrochen ist. Falls der TA-Code nicht geladen ist, wird er an 970 auf den PC übertragen und wird ein residentes ladbares Programm 950.
- Die erste Seite von Dokument 840, Fig. 8, wird dann an 914 zusammengestellt und über Linie 971 an den PC-Block 951 gesendet. Der TA-Code 940 formatiert dann die Seite an 951, wobei eine Anzeigeseite für Interaktionen des Anwenders aufbewahrt wird.
- Der Editorblock 952 wartet, daß der Anwender eine gewünschte Handlung in dem Dokument kennzeichnet, führt dann verschiedene Basis-Editierfunktionen aus, wie z.B. Einfügen von Text, Umbruch zur nächsten Zeile, Text suchen, und Block 953 überwacht die Bedingung "Puffer voll"; falls der Seitenhaltepuffer 891 voll ist, sendet Linie 972 die modifizierten Daten an den WP-Code 915 zur Speicherung in Dokument 841. Linie 973 bestätigt den Empfang dieser Daten an das TA-Programm 940.
- Falls der Anwender eine Kopier-, Verschiebungs- oder Löschfunktion ausgewählt hatte, dann veranlaßt Block 954, daß Block 955 bestimmt, ob die zur Ausführung der Funktion notwendigen Daten innerhalb des aktuellen Seitenpuffers sind. Falls sie es nicht sind, sendet Linie 974 die Anforderung an den WP-Code-Block 916 zurück, um das angeforderte Kopieren, Verschieben oder Löschen auszuführen. Block 916 führt die gesamte Operation mit allen relevanten Dokumentdaten aus. Falls die Anforderung nur Daten innerhalb der aktuellen Seite umfaßt, führt Block 956 das Kopieren, Verschieben oder Löschen mittels TA-Code 940 innerhalb von PC 145 aus. Irgendeine Zeilenausrichtung, die wegen der Editieraktivität erforderlich ist, wird vollständig von dem TA-Code an Block 957 ausgeführt.
- Falls der Bediener (an Block 952) eine Rechtschreibprüfung oder andere linguistische Funktionen, wie z.B. Synonyme, angefordert hatte, erhält Block 958 die Start- und Endpositionen, die der Anwender in Block 952 gekennzeichnet hatte, und diese Grenzen werden über Linie 975 an den WP-Code-Block 917 gesendet, um die Rechtschreibprüfung oder eine andere Funktion mit dem gespeicherten Dokument 840 in CP 110 zu behandeln. Linie 976 sendet Fehlermarkierungen (z.B. für falsch geschriebene Worte) an die TA-Rechtschreibfunktion 958 zurück, die eine Anzeige der Fehler liefert.
- Block 959 sendet Druck- und Paginierungsanforderungen über Linie 977 an den WP-Code-Block 918, der diese Funktion vollständig innerhalb von CP 110 bereitstellt.
- Einige der Funktionen des gesamten DisplayWrite/36 Textverarbeitungssystems werden noch so ausgeführt, als wäre der PC 145 eine nichtintelligente Datenstation; dies sind Funktionen, die auf CP 110 genauso effizient ausgeführt werden, wie sie auf PC 145 ausgeführt würden, so gibt es keinen Grund, sie zu dem PC mit seinen begrenzten Hauptspeicherplatz- und Ausführungseigenschaften zu bewegen. Diese Funktionen umfassen zum Beispiel Mehrspaltenoperationen und Seiten/Zeilen-Formatveränderungen. Wenn irgendeine dieser Funktionen an 952 aufgerufen wurde, dann sendet Block 960 eine Anforderung über Linie 978 an den WP-Code 919. Elock 919 veranlaßt die geeignete Funktion, in CP 110 ausgeführt zu werden und überträgt die notwendigen Bildschirme über den Emulator 860 an den PC, Fig. 8. (Diese Anzeigen sind keine normalen Seiten des Dokumentes, sondern eher Menüs, Nachrichten usw.> Diese Zuordnung der Funktionen stattet den Anwender mit allen Fähigkeiten des WP-Codes aus, ohne zu erfordern, daß der Code tatsächlich sowohl im Prozessor 110 als auch 145 vorliegt.
- Falls wegen Suchens oder Bildschirmverschiebens durch den Anwender eine neue Seite erforderlich ist, sendet Block 962 eine Anforderung 980 an den WP-Code-Block 920. Block 920 bestimmt, welche Seite des in CP 110 gespeicherten Dokuments gesendet werden sollte und überträgt die Steuerung an Block 914. Dieser Block stellt, wie vorher beschrieben, die angeforderte Seite zusammen und sendet sie an 972 an den TA-Code.
- Falls der Anwender ein Verlassen des Dokuments anfordert, sendet Block 963 eine Anforderung 981 an den Beendigungscode 921. Block 921 sichert dann den Dokumentpuffer 891 zurück an Dokument 841 und schließt das Textverarbeitungssystem.
- Andere Anwendungen, wie etwa ein Datenbankverwaltungssystem, könnten die vorliegende Erfindung auch verwenden, um Funktionen wie das Suchen von Datensätzen oder das Aktualisieren unter Verwendung derselben Konzepte aufzuteilen. Büroverwaltungssysteme bieten auch eine Umgebung, die dem Gebrauch dieser Erfindung förderlich ist. Andere Implementierungen können Prozessororganisationen verwenden, die von der gezeigten abweichen. Zusätzliche Prozessorebenen könnten verwendet werden, um auf Bildschirmen, Seiten, Dokumenten und Dokumentordnern zu arbeiten, falls gewünscht.
Claims (7)
1. Verfahren zur Ausführung eines interaktiven Tasks mit einer
nicht ausführbaren Dateneinheit mittels eines ersten
zentralen Datenprozessors und eines zweiten
Hilfsdatenprozessors, wobei der Hilfsprozessor zur Anzeige an und Eingabe
durch einen Bediener angepaßt wird, wobei das Verfahren die
folgenden Schritte umfaßt:
(a) Speichern der gesamten nicht ausführbaren Dateneinheit
in dem zentralen Prozessor;
(b) Übertragen eines Anteils der nicht ausführbaren
Dateneinheit an den zweiten Prozessor;
(c) Anzeigen von mindestens einem Anteil des Teils der
nicht ausführbaren Dateneinheit auf der Anzeige unter der
Steuerung des in dem Hilfsprozessor befindlichen Codes;
(d) in dem Hilfsprozessor Empfangen einer Befehlseingabe
durch den Bediener, um eine vorherbestimmte Funktion mit
bestimmten Daten innerhalb der nicht ausführbaren Einheit
zur Modifizierung der bestimmten Daten auszuführen;
(e) falls die vorherbestimmte Funktion zu einer ersten
vorherbestimmten Kategorie gehört, Ausführen der
vorherbestimmten Funktion in dem zentralen Prozessor mit der nicht
ausführbaren Dateneinheit, die sich in dem zentralen
Prozessor befindet, mittels eines Codes, der sich vollständig
in dem zentralen Prozessor befindet;
(f) falls die vorherbestimmte Funktion zu einer zweiten
vorherbestimmten Kategorie gehört, in dem Hilfsprozessor
Bestimmen, ob die Funktion nur Daten in dem nicht aus
führbaren Teil der Dateneinheit erfordert, der sich in dem
Hilfsprozessor befindet;
(1) falls ja, Ausführen der vorherbestimmten Funktion
vollständig in dem Hilfsprozessor mittels eines Programmcodes,
der sich in dem Hilfsprozessor befindet, und mit Daten, die
sich in dem Hilfsprozessor befinden;
(2) falls nein, Ausführen derselben vorherbestimmten
Funktion in dem zentralen Prozessor mittels eines
Programmcodes, der sich in dem zentralen Prozessor befindet, und mit
Daten in derselben nicht ausführbaren Dateneinheit, die
sich in dem zentralen Prozessor befindet.
2. Verfahren nach Anspruch 1, die weiterhin umfaßt:
(g) nach der Beendigung der Funktion Bestimmen, ob ein
neuer Anteil der nicht ausführbaren Dateneinheit zur möglichen
weiteren Verarbeitung in dem Hilfsprozessor erforderlich
ist;
(h) falls ja, Übertragen eines weiteren Anteils der nicht
ausführbaren Dateneinheit von dem zentralen Prozessor zu
dem Hilfsprozessor.
3. Verfahren nach Anspruch 2, wobei die nicht ausführbare
Dateneinheit ein Textdokument ist, und wobei die Anteile
vordefinierte Seiten in dem Textdokument sind.
4. Verfahren nach Anspruch 2, wobei das Dokument
Formatierungsdaten beinhaltet, die ein Format für andere Daten in
dem Dokument angeben, und wobei die Schritte (b) und (g)
das Übertragen der Formatierungsdaten von dem gesamten
Dokument in dem zentralen Prozessor zu dem Hilfsprozessor und
die Formatierung der anderen Daten in dem Anteil gemäß den
Formatierungsdaten, die von dem zentralen Prozessor
übertragen werden, umfassen.
5. Vorrichtung zur Ausführung einer Vielzahl anderer
Funktionen mit einer Dateneinheit, wobei die Vorrichtung folgendes
umfaßt einen zentralen Prozessor umfassend
Speichermittel zur Aufbewahrung einer ganzen nicht aus
führbaren Dateneinheit;
zuerst ausführbarem Code zur Ausführung einer ersten
Kategorie von Dateneinheitsfunktionen mit der ganzen nicht
ausführbaren Dateneinheit und
Mittel zur Übertragung von Anteilen der nicht ausführbaren
Dateneinheit an einen Hilfsprozessor;
der Hilfsprozessor umfaßt
Anzeigemittel zur Anzeige mindestens eines Teils der nicht
ausführbaren Dateneinheit auf einem Anzeigeschirm,
Eingabemittel zum Empfangen eines Befehls von einem
Bediener, eine vorherbestimmte Funktion mit bestimmten Daten
innerhalb der nicht ausführbaren Dateneinheit zum
Modifizieren der bestimmten Daten auszuführen;
Puffermittel zum Speichern einiger der Anteile;
einen zweiten ausführbaren Code zur Ausführung einer
zweiten Kategorie von Dateneinheitsfunktionen mit irgendwelchen
Anteilen der nicht ausführbaren Dateneinheit, die an den
Hilfsprozessor übertragen werden;
Entscheidungsmittel zur Bestammung, ob die vorherbestimmte
Funktion zu der ersten Kategorie gehört, und, falls ja,
Ausführen der vorherbestimmten Funktion in dem zentralen
Prozessor mittels des ersten ausführbaren Codes mit der
nicht ausführbaren Dateneinheit, die sich in dem zentralen
Prozessor befindet,
Entscheidungsmittel zur Bestimmung, ob die vorherbestimmte
Funktion zu der zweiten Kategorie gehört und nur Daten in
dem nicht ausführbaren Anteil der Dateneinheit erfordert,
der sich in dem Hilfsprozessor befindet, und
falls ja, Ausführen der vorherbestimmten Funktion
vollständig in dem Hilfsprozessor mittels des zweiten ausführbaren
Codes mit Daten, die sich in dem Puffermittel befinden,
falls nein, Ausführen derselben vorherbestimmten Funktion
in dem zentralen Prozessor mittels des ersten ausführbaren
Codes mit der nicht ausführbaren Dateneinheit, die in dem
zentralen Prozessor erzeugt wurde.
6. Vorrichtung nach Anspruch 5, wobei der zentrale Prozessor
weiterhin einen Programmcode zur Ausführung von
Dateneinheitsfunktionen in dem zentralen Prozessor umfaßt.
7. Vorrichtung nach Anspruch 5, wobei die Dateneinheit
Formatierungsdaten und eine Anzahl von Seiten umfaßt, die
Textdaten enthalten, und wobei das Übertragungsmittel eine der
Seiten zusammen mit mindestens einigen der
Formatierungsdaten überträgt.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/142,587 US4949300A (en) | 1988-01-07 | 1988-01-07 | Sharing word-processing functions among multiple processors |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3853274D1 DE3853274D1 (de) | 1995-04-13 |
DE3853274T2 true DE3853274T2 (de) | 1995-09-14 |
Family
ID=22500459
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE3853274T Expired - Fee Related DE3853274T2 (de) | 1988-01-07 | 1988-11-08 | Verfahren und Vorrichtung zur Aufteilung von Datenverarbeitungsfunktionen zwischen mehreren Prozessoren. |
Country Status (5)
Country | Link |
---|---|
US (1) | US4949300A (de) |
EP (1) | EP0323795B1 (de) |
JP (1) | JPH01259447A (de) |
CA (1) | CA1309187C (de) |
DE (1) | DE3853274T2 (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19830472B4 (de) * | 1998-07-08 | 2013-06-27 | Robert Bosch Gmbh | Externe Komponente für ein Mikroprozessorsystem und Betriebsverfahren |
Families Citing this family (65)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5291489A (en) * | 1987-11-13 | 1994-03-01 | Dsc Communications Corporation | Interprocessor switching network |
JP2755951B2 (ja) * | 1988-01-30 | 1998-05-25 | キヤノン株式会社 | 情報処理装置 |
CA1341310C (en) | 1988-07-15 | 2001-10-23 | Robert Filepp | Interactive computer network and method of operation |
CA2007414C (en) * | 1989-04-26 | 1994-10-25 | Clayton James Bennett Iii | Method for manipulating elements within a structured document using active intent interpretations |
CA2059615A1 (en) * | 1991-01-23 | 1992-07-24 | Edward J. Neubauer | Method of selecting and representing data |
US5528490A (en) * | 1992-04-10 | 1996-06-18 | Charles E. Hill & Associates, Inc. | Electronic catalog system and method |
US5437036A (en) * | 1992-09-03 | 1995-07-25 | Microsoft Corporation | Text checking application programming interface |
JP3534359B2 (ja) * | 1994-05-13 | 2004-06-07 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 複数のディスプレイ・セッションをサポートする装置、方法およびコンピュータ・システム |
US5781758A (en) * | 1995-03-23 | 1998-07-14 | Apple Computer, Inc. | Software emulation system with reduced memory requirements |
US5970471A (en) * | 1996-03-22 | 1999-10-19 | Charles E. Hill & Associates, Inc. | Virtual catalog and product presentation method and apparatus |
US6184902B1 (en) | 1997-04-30 | 2001-02-06 | Hewlett-Packard Company | Centralized branch intelligence system and method for a geometry accelerator |
US5956047A (en) * | 1997-04-30 | 1999-09-21 | Hewlett-Packard Co. | ROM-based control units in a geometry accelerator for a computer graphics system |
US5930519A (en) * | 1997-04-30 | 1999-07-27 | Hewlett Packard Company | Distributed branch logic system and method for a geometry accelerator |
JP3507681B2 (ja) * | 1998-01-08 | 2004-03-15 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 情報処理方法及び情報処理装置、情報処理システム、情報処理装置を制御するプログラムを格納した記憶媒体 |
US6088702A (en) * | 1998-02-25 | 2000-07-11 | Plantz; Scott H. | Group publishing system |
US6757900B1 (en) | 2000-05-18 | 2004-06-29 | Microsoft Corporation | State management of server-side control objects |
US7013340B1 (en) | 2000-05-18 | 2006-03-14 | Microsoft Corporation | Postback input handling by server-side control objects |
US20020019845A1 (en) | 2000-06-16 | 2002-02-14 | Hariton Nicholas T. | Method and system for distributed scripting of presentations |
US7380250B2 (en) | 2001-03-16 | 2008-05-27 | Microsoft Corporation | Method and system for interacting with devices having different capabilities |
US7493397B1 (en) | 2001-06-06 | 2009-02-17 | Microsoft Corporation | Providing remote processing services over a distributed communications network |
US6944797B1 (en) | 2001-06-07 | 2005-09-13 | Microsoft Corporation | Method and system for tracing |
US6915454B1 (en) | 2001-06-12 | 2005-07-05 | Microsoft Corporation | Web controls validation |
US7162723B2 (en) * | 2001-06-29 | 2007-01-09 | Microsoft Corporation | ASP.NET HTTP runtime |
US7594001B1 (en) | 2001-07-06 | 2009-09-22 | Microsoft Corporation | Partial page output caching |
US7216294B2 (en) | 2001-09-04 | 2007-05-08 | Microsoft Corporation | Method and system for predicting optimal HTML structure without look-ahead |
US7428725B2 (en) * | 2001-11-20 | 2008-09-23 | Microsoft Corporation | Inserting devices specific content |
US7496841B2 (en) * | 2001-12-17 | 2009-02-24 | Workshare Technology, Ltd. | Method and system for document collaboration |
US20030112273A1 (en) * | 2001-12-17 | 2003-06-19 | Workshare Technology, Ltd. | Document collaboration suite using a common database |
US20030233477A1 (en) * | 2002-06-17 | 2003-12-18 | Microsoft Corporation | Extensible infrastructure for manipulating messages communicated over a distributed network |
US7574653B2 (en) | 2002-10-11 | 2009-08-11 | Microsoft Corporation | Adaptive image formatting control |
US7596782B2 (en) * | 2003-10-24 | 2009-09-29 | Microsoft Corporation | Software build extensibility |
US7890604B2 (en) | 2004-05-07 | 2011-02-15 | Microsoft Corproation | Client-side callbacks to server events |
US8065600B2 (en) | 2004-05-14 | 2011-11-22 | Microsoft Corporation | Systems and methods for defining web content navigation |
US7464386B2 (en) | 2004-05-17 | 2008-12-09 | Microsoft Corporation | Data controls architecture |
US7530058B2 (en) * | 2004-05-28 | 2009-05-05 | Microsoft Corporation | Non-compile pages |
US8156448B2 (en) * | 2004-05-28 | 2012-04-10 | Microsoft Corporation | Site navigation and site navigation data source |
US20060020883A1 (en) * | 2004-05-28 | 2006-01-26 | Microsoft Corporation | Web page personalization |
US20060064643A1 (en) * | 2004-09-14 | 2006-03-23 | Hariton Nicholas T | Distributed scripting for presentations with touch screen displays |
US9418054B2 (en) | 2008-05-12 | 2016-08-16 | Adobe Systems Incorporated | Document comment management |
US9176943B2 (en) | 2008-05-12 | 2015-11-03 | Adobe Systems Incorporated | Comment presentation in electronic documents |
US9329744B2 (en) | 2008-05-12 | 2016-05-03 | Adobe Systems Incorporated | Segmented scroll bar |
US7945595B1 (en) | 2008-05-12 | 2011-05-17 | Adobe Systems Incorporated | System and method for generating an item list in electronic content |
US8996621B2 (en) | 2008-05-12 | 2015-03-31 | Adobe Systems Incorporated | Asynchronous comment updates |
US10055392B2 (en) | 2008-05-12 | 2018-08-21 | Adobe Systems Incorporated | History-based archive management |
US7949633B1 (en) | 2008-05-12 | 2011-05-24 | Adobe Systems Incorporated | Shared edit access of electronic content |
US8893017B2 (en) | 2008-05-29 | 2014-11-18 | Adobe Systems Incorporated | Tracking changes in a database tool |
US8286171B2 (en) * | 2008-07-21 | 2012-10-09 | Workshare Technology, Inc. | Methods and systems to fingerprint textual information using word runs |
US8555080B2 (en) * | 2008-09-11 | 2013-10-08 | Workshare Technology, Inc. | Methods and systems for protect agents using distributed lightweight fingerprints |
WO2010059747A2 (en) | 2008-11-18 | 2010-05-27 | Workshare Technology, Inc. | Methods and systems for exact data match filtering |
US8406456B2 (en) * | 2008-11-20 | 2013-03-26 | Workshare Technology, Inc. | Methods and systems for image fingerprinting |
WO2011017084A2 (en) * | 2009-07-27 | 2011-02-10 | Workshare Technology, Inc. | Methods and systems for comparing presentation slide decks |
US10783326B2 (en) | 2013-03-14 | 2020-09-22 | Workshare, Ltd. | System for tracking changes in a collaborative document editing environment |
US10025759B2 (en) | 2010-11-29 | 2018-07-17 | Workshare Technology, Inc. | Methods and systems for monitoring documents exchanged over email applications |
US11030163B2 (en) | 2011-11-29 | 2021-06-08 | Workshare, Ltd. | System for tracking and displaying changes in a set of related electronic documents |
US10574729B2 (en) | 2011-06-08 | 2020-02-25 | Workshare Ltd. | System and method for cross platform document sharing |
US10963584B2 (en) | 2011-06-08 | 2021-03-30 | Workshare Ltd. | Method and system for collaborative editing of a remotely stored document |
US9948676B2 (en) | 2013-07-25 | 2018-04-17 | Workshare, Ltd. | System and method for securing documents prior to transmission |
US9613340B2 (en) | 2011-06-14 | 2017-04-04 | Workshare Ltd. | Method and system for shared document approval |
US10880359B2 (en) | 2011-12-21 | 2020-12-29 | Workshare, Ltd. | System and method for cross platform document sharing |
US9170990B2 (en) | 2013-03-14 | 2015-10-27 | Workshare Limited | Method and system for document retrieval with selective document comparison |
US11567907B2 (en) | 2013-03-14 | 2023-01-31 | Workshare, Ltd. | Method and system for comparing document versions encoded in a hierarchical representation |
US10911492B2 (en) | 2013-07-25 | 2021-02-02 | Workshare Ltd. | System and method for securing documents prior to transmission |
US10133723B2 (en) | 2014-12-29 | 2018-11-20 | Workshare Ltd. | System and method for determining document version geneology |
US11182551B2 (en) | 2014-12-29 | 2021-11-23 | Workshare Ltd. | System and method for determining document version geneology |
US11763013B2 (en) | 2015-08-07 | 2023-09-19 | Workshare, Ltd. | Transaction document management system and method |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4204206A (en) * | 1977-08-30 | 1980-05-20 | Harris Corporation | Video display system |
DE3069696D1 (en) * | 1980-06-30 | 1985-01-10 | Ibm | Text processing terminal with editing of stored document at each keystroke |
US4398264A (en) * | 1980-08-12 | 1983-08-09 | Pitney Bowes Inc. | Circuit to enable foreground and background processing in a word processing system with circuits for performing a plurality of independently controlled functions |
US4604710A (en) * | 1981-10-09 | 1986-08-05 | International Business Machines Corporation | System for converting data processing information to text processing format and vice versa |
US4463442A (en) * | 1981-10-09 | 1984-07-31 | International Business Machines Corporation | Emulation of data processing display terminals of variable screen size on the display of a text processor |
US4503499A (en) * | 1982-09-14 | 1985-03-05 | Eaton Corporation | Controlled work flow system |
JPS5971562A (ja) * | 1982-10-18 | 1984-04-23 | Hitachi Ltd | 時分割計算機システムの制御方式 |
US4532588A (en) * | 1982-11-09 | 1985-07-30 | International Business Machines Corporation | Electronic document distribution network with uniform data stream |
US4633430A (en) * | 1983-10-03 | 1986-12-30 | Wang Laboratories, Inc. | Control structure for a document processing system |
JPS60245338A (ja) * | 1984-05-21 | 1985-12-05 | Hitachi Ltd | デ−タ処理システム |
US4924434A (en) * | 1985-10-15 | 1990-05-08 | International Business Machines Corporation | Sharing word-processing functions among multiple processors |
JPS62212761A (ja) * | 1986-03-14 | 1987-09-18 | Hitachi Ltd | 機能分散情報処理システム |
-
1988
- 1988-01-07 US US07/142,587 patent/US4949300A/en not_active Expired - Lifetime
- 1988-10-17 CA CA000580380A patent/CA1309187C/en not_active Expired - Fee Related
- 1988-11-08 EP EP88480071A patent/EP0323795B1/de not_active Expired - Lifetime
- 1988-11-08 DE DE3853274T patent/DE3853274T2/de not_active Expired - Fee Related
- 1988-11-18 JP JP63290393A patent/JPH01259447A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19830472B4 (de) * | 1998-07-08 | 2013-06-27 | Robert Bosch Gmbh | Externe Komponente für ein Mikroprozessorsystem und Betriebsverfahren |
Also Published As
Publication number | Publication date |
---|---|
CA1309187C (en) | 1992-10-20 |
DE3853274D1 (de) | 1995-04-13 |
US4949300A (en) | 1990-08-14 |
JPH01259447A (ja) | 1989-10-17 |
EP0323795A2 (de) | 1989-07-12 |
EP0323795A3 (de) | 1991-04-03 |
EP0323795B1 (de) | 1995-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3853274T2 (de) | Verfahren und Vorrichtung zur Aufteilung von Datenverarbeitungsfunktionen zwischen mehreren Prozessoren. | |
DE3854481T2 (de) | Datenverarbeitungsverfahren in einem dezentralisierten Verarbeitungssystem. | |
DE3587501T2 (de) | Gerät, Verfahren und Struktur zur Umwandlung eines Dokumentes einer Struktur in ein Dokument einer anderen Struktur. | |
DE3586273T2 (de) | Implizite erzeugung einer superblockstruktur in einem vieldaten-edierungsgeraet. | |
DE3586274T2 (de) | Vieldaten-edierungsgeraet mit gebrauch von attributstroemen fuer textobjekte. | |
DE3586272T2 (de) | Integriertes vieldaten-edierungsgeraet. | |
DE69618864T2 (de) | Informationsverwaltungseinrichtung zum effizienten Verwalten von Multimedia-Titeln in einem Klient-Server-Netzwerk | |
DE3588206T2 (de) | Bildverarbeitungssystem | |
DE69129684T2 (de) | Bildverarbeitung | |
DE3687215T2 (de) | Mehrfachprozessanzeigesystem mit bildfenstern. | |
DE69523593T2 (de) | Vorrichtung und verfahren zur aufteilung der anwendung in einer graphischen benutzerschnittstelle | |
DE69129645T2 (de) | Verfahren und Anordnung zur Unterstützung der Anzeige und Entfernung von Fenstern | |
DE3885085T2 (de) | Verfahren zur automatischen Änderung der Abmessungen von angezeigten Objekten in Bezug auf die Änderungen der Abmessungen des Bildfensters. | |
DE69602359T2 (de) | Transfer von bilddaten | |
DE112015002695T5 (de) | Systeme und Verfahren zum Bearbeiten einer Datei in einer nicht nativen Anwendung unter Verwendung einer Anwendungs-Engine | |
DE68925474T2 (de) | Verriegelungsrechnersysteme | |
DE69609619T2 (de) | Darstellungssystem für pc's in einem pc-netzwerk | |
DE3688191T2 (de) | Editor für virtuelle Maschinen. | |
DE68915847T2 (de) | Tastatur-Umbelegung. | |
DE1524225B2 (de) | Verfahren zum betriebe einer redigier- und wiedergabeeinrichtung | |
DE3780208T2 (de) | Textverarbeitungsapparat zur verarbeitung von texten gemaess verschiedenen ausgewaehlten textformaten. | |
DE3714172A1 (de) | Einrichtung zum durchsuchen von dokumenten in einem dokumentenablagesystem | |
DE69804111T2 (de) | Computer-implementiertes verfahren zum erstellen von virtuellen dateien für die gemeinsame verwendung von information aus einer physikalischen informationsdatei | |
DE69026764T2 (de) | Verfahren zur Datenübertragung mit hoher Geschwindigkeit | |
DE10135445A1 (de) | Integriertes Verfahren für das Schaffen einer aktualisierbaren Netzabfrage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |