DE69226858T2 - Kommunikationssystem - Google Patents
KommunikationssystemInfo
- Publication number
- DE69226858T2 DE69226858T2 DE69226858T DE69226858T DE69226858T2 DE 69226858 T2 DE69226858 T2 DE 69226858T2 DE 69226858 T DE69226858 T DE 69226858T DE 69226858 T DE69226858 T DE 69226858T DE 69226858 T2 DE69226858 T2 DE 69226858T2
- Authority
- DE
- Germany
- Prior art keywords
- copy
- data
- storing
- shared
- objects
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 238000004891 communication Methods 0.000 title description 4
- 238000000034 method Methods 0.000 claims description 109
- 230000008569 process Effects 0.000 claims description 93
- 230000008859 change Effects 0.000 claims description 10
- 230000004044 response Effects 0.000 claims description 6
- 238000013459 approach Methods 0.000 abstract description 7
- 230000007246 mechanism Effects 0.000 description 11
- 238000012545 processing Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- JSUVCAQGWVUMPD-QXUQJYLISA-N Arjuna Natural products O([C@H]([C@@H](O)C=O)[C@H]1[C@H](O)COC(=O)c2c(c(O)c(O)c(O)c2)-c2c(O)c(O)c3OC(=O)c4c(c(O)c(O)c5OC(=O)c2c3-c45)-c2c(O)c(O)c(O)cc2C(=O)O1)C(=O)c1cc(O)c(O)c(O)c1 JSUVCAQGWVUMPD-QXUQJYLISA-N 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 230000003068 static 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/465—Distributed object oriented systems
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
- Multi Processors (AREA)
- Eye Examination Apparatus (AREA)
- Pharmaceuticals Containing Other Organic And Inorganic Compounds (AREA)
- Transition And Organic Metals Composition Catalysts For Addition Polymerization (AREA)
- Acyclic And Carbocyclic Compounds In Medicinal Compositions (AREA)
- Saccharide Compounds (AREA)
- Radar Systems Or Details Thereof (AREA)
- Cyclones (AREA)
- Centrifugal Separators (AREA)
- Selective Calling Equipment (AREA)
- Exchange Systems With Centralized Control (AREA)
- Liquid Crystal (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Preparation Of Compounds By Using Micro-Organisms (AREA)
- Vehicle Body Suspensions (AREA)
- Information Transfer Between Computers (AREA)
Description
- Die Erfindung betrifft ein objektorientiertes System.
- In den vergangenen Jahren ist zunehmend eine neue Programmiermethode zu Entwicklung von Softwareprogrammen verwendet worden.
- Diese Methode wird als Objektorientierung bezeichnet und ist auf alle Stufen des Softwareentwicklungslebenszyklus von der Analyse bis zur Codierung anwendbar. Das angewendete Grundprinzip besteht darin, Objekte zu konstruieren, die eine Kapselung von Daten und den Funktionen, die auf diesen Daten arbeiten, darstellen, so daß folgendes gilt:
- a. Objekte kommunizieren miteinander nur durch Weitergabe von Nachrichten.
- b. Der Benutzer eines Objekts muß nichts über die interne Implementierung des Objekts wissen, sondern nur etwas über die Dienste, die es (durch den Empfang einer gültigen Nachricht) bereitstellen kann.
- c. Die gewählten Objekte sollten irgendeine Beziehung zum dem vorliegenden Problem aufweisen. Im allgemeinen enthalten objektorientierte Softwaresysteme Objekte, die Abstraktionen von Entitäten innerhalb des Systems, das die Software überwachen oder steuern soll, sind.
- Diese einfache Beschreibung charakterisiert Objektorientierung als Methode nicht vollständig, dient aber als Grundlage, um die Erfindung zu verstehen. Obwohl Objekte über Softwarebegriffe definiert worden sind, können Objekte auch als Mischungen von Software und Hardware verstanden werden, z. B. kann die Übermittlung einer Nachricht an ein Objekt in einem Verhalten resultieren, das den Zustand von Hardware, die gesteuert wird, beeinflußt, so daß der "Software"-Teil des Objekts effektiv nicht mehr als ein Schnittstellenmechanismus für den "Hardware"-Teil des Objekts ist.
- Da Objekte in Telekommunikationssystemen nur durch Übergabe von Nachrichten kommunizieren, bietet dies bei der Entwicklung objektorientierter Systeme ein großes Maß an Flexibilität im Hinblick auf die Architektur. Dies führt zu dem Problem, daß es nur kleine Unterschiede gibt zwischen dem Austauschen einer Nachricht zwischen Objekten, die in einem einzelnen Prozeß existieren, die in getrennten Prozessen auf der gleichen Maschine existieren und solchen auf verschiedenen Maschinen. Es ist nur der Mechanismus zur Übergabe der Nachricht, der sich in jedem Fall unterscheidet. Die Folge davon ist, daß es nicht mehr eine feste Beziehung zwischen Objekten, Prozessen und Maschinen gibt.
- Der Begriff "Prozeß" wird allgemein in Software-Kreisen benutzt, um einen Teil von Software zu bezeichnen, der verzahnt mit anderen Prozessen auf derselben Maschine abläuft, d. h. die Ausführung der Instruktionen innerhalb eines Prozesses hängt nicht von der Initialisierung oder Beendigung von Instruktionen in einem anderen Prozeß ab. Diese verzahnte Verarbeitung wird gewöhnlich dadurch erreicht, daß ein Multitasking-Betriebssystem benutzt wird, um die Systemverarbeitungszeit unter den Prozessen aufzuteilen. Wenn ein solcher Aufteilungsmechanismus nicht bereitgestellt wird, kann es auf einer Maschine nur einen Prozeß geben.
- In objektorientierten Systemen ist es für ein einzelnes Objekt normal, viele Benutzer zu haben. Wenn die Benutzer eines Objekts Objekte innerhalb des gleichen Prozesses sind, kann keine verzahnte Verarbeitung beteiligt sein und die Nachrichten werden sequentiell ankommen. Wenn das Objekt von Objekten in verschiedenen Prozessen benutzt werden soll, muß die Frage, wie parallele Zugriffe gehandhabt werden, behandelt werden.
- Obwohl im folgenden auf Prozesses allein Bezug genommen wird, kann genau das gleiche auf Objekte, die über mehr als eine Maschine verteilt sind, angewendet werden.
- Das Problem ist früher unter Benutzung des üblichen Client-Server-Modells behandelt worden. Bei diesem Zugang wird das von einer Anzahl von gleichzeitigen Objekten zu benutzende Objekt in einen eigenen Prozeß gesetzt - dieser ist als Server-Prozeß bekannt. Die Objekte in anderen Prozessen (nun als Client-Prozesse bekannt) können dann Nachrichten an das Objekt im Serverprozeß übergeben, um dessen Verhalten zu nutzen. Die Parallelität von Anfragen wird durch eine Form eines Warteschlangenmechanismus an der Schnittstelle zu dem Server-Prozeß gehandhabt, der als Teil des Mechanismus für Inter-Prozeß-Nachrichtenaustausch (interprocess message mechanism) vorgesehen ist.
- Obwohl dieser Mechanismus funktioniert, weist er eine Anzahl von Nachteilen auf:
- a. Die Funktion des Server-Prozesses ist es, die Parallelität durch Serialisierung zu behandeln, d. h. daß die Nachrichten nur in eine Warteschlange gesetzt werden und eine nach der anderen behandelt wird. Die Parallelität, die versucht worden war, ist effektiv weggeworfen worden. Wie annehmbar dies ist, wird von dem tatsächlichen, betrachteten System abhängen, jedoch kann ein solches Schema auf Systemen, die Parallelverarbeitung durch die Benutzung mehrerer Maschinen erzielt haben, zu zwangsweisen Leerlaufzeiten führen, während Clients auf Serverantworten warten, und resultiert in nicht optimaler Leistung.
- b. Nachrichtenübergabe zwischen Objekten innerhalb desselben Prozesses ist immer viel schneller als Nachrichtenübergabe zwischen Objekten in verschiedenen Prozessen. Der Client- Server-Zugang erzwingt die Benutzung des langsameren Mechanismus. Wenn die Objektkommunikation so weit wie möglich innerhalb eines Prozesses gehalten werden könnte, würden lohnende Leistungsverbesserungen gewonnen.
- c. Typische objektorientierte Designs führen zu einer große Anzahl von Objekten, die von vielen verschiedenen Prozessen benutzt werden müssen. Der Client-Server-Zügang führt typischerweise zu einem Kompromiß zwischen den zwei Extremen, alle Objekte in einen einzelnen Server-Prozeß zu setzen oder jedes Objekt in einen eigenen Prozeß zu setzen. Die Benutzung eines einzelnen Server-Prozesses führt zu einem Nachrichten-Engpaß, wodurch der Systembetrieb auf die Geschwindigkeit, mit der die Server-Warteschlange bedient wird, verlangsamt wird, und, bedingt durch die Beschränktheit der Systemressourcen, ist die Anzahl der Objekte normalerweise zu groß, um in der Praxis jedem einzelnen einen Prozeß zuzuweisen. Bei großen Systemen kann ein zufriedenstellender Kompromiß in Übereinstimmung mit der erforderlichen Systemleistung nicht erzielt werden.
- Um die obigen Probleme (a-c) anzugehen ist das "Shared object model" der Erfindung entwickelt worden.
- Wenn Objekte in verschiedenen Prozessen ein anderes Objekt zwischen sich benutzen möchten, kann dieses Objekt als ein gemeinsam genutztes Objekt aufgefaßt werden. Eine Alternative zur Erzeugung eines Server-Prozesses ist es, eine Kopie dieses gemeinsam genutzten Objektes in jedem der Prozesse zu erzeugen, die auf es zugreifen wollen. Alle an das gemeinsam genutzte Objekt übergebenen Nachrichten scheinen innerhalb desselben Prozesses zu sein, darüber hinaus findet keine Serialisierung der Nachrichten in einer Warteschlange statt, d. h. die Parallelität ist erhalten. Dies klingt ideal, außer daß, damit dieses gemeinsam genutzte Objekt ein gemeinsam genutztes Objekt ist, jede Kopie in jedem Prozeß genau gleich sein muß.
- Ein Objekt ist durch seine internen Daten und seine Methoden (den Funktionen, die als Reaktion auf ankommende Nachrichten auf seinen internen Daten arbeiten,) charakterisiert. Die internen Daten eines Objekts sind gewöhnlich dynamisch und verändern sich mit der Zeit. Die Methoden eines Objekts sind statischer, da sie normalerweise zu der Erzeugungszeit des Systems (oder früher) definiert werden, und verändern sich nicht während der Lebensdauer des Systems. Wenn Kopien eines gemeinsam genutzten Objekts gemacht werden, sind es daher nur die internen Daten, die konsistent gehalten werden müssen. Wenn die in einem Prozeß genutzten Methoden nur zu Leseoperationen auf den internen Daten des gemeinsam genutzten Objekts führen, tritt kein Problem auf. Wenn jedoch die aktivierten Methoden zu einer Änderung der internen Daten führen, z. B. Schreiboperationen, dann müssen solche Änderungen für jede Kopie des gemeinsam genutzten Objekts durchgeführt werden, um Konsistenz aufrechtzuerhalten.
- Dieses kann nur durch Inter-Prozeß-Nachrichtenaustausch (Nachrichtenaustausch zwischen Prozessen) erreicht werden. Es muß eine Datenstruktur erzeugt und unterhalten werden, die jeden Prozeß genau aufführt, der gegenwärtig des gemeinsam genutzte Objekt benutzt. Wenn in einem der Prozesse die internen Daten des gemeinsam genutzten Objekts verändert werden, wird diese Tabelle benutzt, um die in anderen Prozessen vorhandenen Kopien neu zu erzeugen oder zu aktualisieren.
- Ein Vorschlag für eine objektorientierte Anordnung, in der Objekte bei einer Anzahl von physikalisch abgesetzten Knoten kopiert werden können, wird in dem Artikel "The Treatment of Persistent Objects in Arjuna" (The Computer Journal, Vol. 32, No. 4, August 1989, Seiten 323-332, Cambridge UK) beschrieben. Dieser Vorschlag betrifft die Bereitstellung von fehlertoleranten, verteilten Systemen, die relativ widerstandsfähig gegen den Ausfall einzelner Knoten und den Verlust von Nachrichten sind. Dauerhafte (persistente) Objekte werden in nicht-flüchtigen Speichern gespeichert. Um ein Objekt zu aktivieren, ist es notwendig, es von dem nicht-flüchtigen Speicher in flüchtige Speicher zu kopieren. Auf die Kopie im flüchtigen Speicher wird dann zugegriffen. Wenn der Zugriff die Änderung von Daten beinhaltet, wird die geänderte flüchtige Kopie benutzt, um die nicht-flüchtige Kopie zu aktualisieren, wenn der Zugriff normal beendet wird. Sollte ein Ausfall auftreten, während die flüchtige Kopie benutzt wird, kann die nichtflüchtige Kopie benutzt werden, um den Betrieb wiederaufzunehmen.
- Sollte ein Knoten ein bei einem anderen Knoten gespeichertes, gemeinsam genutztes Objekt zu benutzen wünschen, wird, wenn nur Lese- (READ-) Operationen erforderlich sind, eine lokale Kopie erzeugt und es wird direkt auf sie zugegriffen, wodurch die Notwendigkeit eines Client-Server-Prozesses vermieden wird.
- Wenn jedoch eine Schreib-(WRITE-) Operation erfolgen soll, wird keine lokale Kopie gemacht. Stattdessen müssen einzelne Client- Server-Prozesse zwischen dem Prozeß, der die Schreiboperationen erzeugt, und den replizierten Kopien des Objekts erzeugt werden.
- Die replizierten Objekte werden dann so konfiguriert, daß sie funktionell einem einzelnen Objekt äquivalent sind und jegliche Änderungen sofort zu allen replizierten Kopien über ihre entsprechenden Client-Server-Prozesse geleitet werden. Obwohl dies Konsistenz erhält, ist die Bereitstellung eines dedizierten Client-Server-Prozesses für jede replizierte Kopie erforderlich, um die Möglichkeit einer Datenänderung zu berücksichtigen.
- Der "shared object"- Zugang (Zugang über gemeinsam genutzte Objekte) der vorliegenden Erfindung behandelt das Problem der Gleichzeitigkeit, da es über die vielfachen Kopien des gemeinsam genutzten Objekts weiterbesteht. Inter-Prozeß-Nachrichtenaustausch wird weiterhin benutzt, jedoch nur, wenn eine Methode eines gemeinsam genutzten Objekts, die zu einer Änderung der internen Daten führt, benutzt wird, der schnellere Intra-Prozeß- Nachrichtenaustausch wird jedoch für alle anderen Methoden benutzt. Das Problem, Objekte den Server-Prozessen zuzuweisen, und die damit verbundenen Leistungsprobleme werden beseitigt. Dies soll nicht heißen, daß das Client-Server-Modell nicht benutzt werden soll - es gibt noch immer Umstände, unter denen es vernünftig wäre, diese Einrichtung statt des "shared object"- Zugangs zu benutzen. Außerdem hat der "shared object"-Zugang auch einige potentielle Nachteile, nämlich:
- a. Wenn ein Objekt gemeinschaftlich von vielen Prozessen genutzt wird, muß eine große Datentabelle geführt werden. (In dem Client-Server-Zugang jedoch würde eine solche Situation zu einem Nachrichten-Engpaß führen).
- b. Um sicherzustellen, daß Aktualisierungen des internen Zustands von gemeinsam genutzten Objekten konsistent durchgeführt werden, müssen Objektsperren benutzt werden, d. h. um sicherzustellen, daß die Daten nicht von zwei verschiedenen Prozessen zur gleichen Zeit aktualisiert werden.
- Ein erster Aspekt der Erfindung sieht ein Verfahren zum Betreiben eines objektorientierten Systems vor, das
- Mittel zur Speicherung eines veränderbare Daten enthaltenden Objekts und
- Mittel zur Bereitstellung einer Kopie des Objekts für mindestens einen von den Mitteln zur Speicherung eines Objekts abgesetzten Prozeß, der ein entsprechendes Mittel zur Speicherung der Kopie des Objekts aufweist, enthält, enthaltend die Schritte:
- Zusenden einer Kopie des Objekts an mindestens einen der Prozesse, die von den Mitteln zur Speicherung eines Objekts abgesetzt sind,
- Speichern der Kopie des Objekts in einem entsprechenden Mittel zur Speicherung,
- Ändern der änderbaren Daten des Objekts,
- Mitteilen des Vorhandenseins der Änderung an den oder jeden abgesetzten Prozeß, der eine Kopie des Objekts hat und
- Zusenden einer Kopie der geänderten Daten an den oder jeden abgesetzten Prozeß in Antwort auf eine Anforderung der geänderte Daten von dem oder jedem abgesetzten Prozeß.
- Wenn eine Kopie eines Objekts in einem Prozeß gemacht wird, wird die Benutzung des Objekts durch den Prozeß aufgezeichnet. Wenn irgendein Prozeß die Bezugskopie eines Objekts aktualisiert, werden alle Prozesse, die ein Bild des Objekts haben, informiert. Jeder Prozeß kann dann seine eigene Darstellung des Objekts neu abgleichen, indem er die Bezugsdaten neu liest.
- Ein zweiter Aspekt der Erfindung sieht ein objektorientiertes System vor, das
- Mittel zur Speicherung eines änderbare Daten enthaltenden Objekts,
- mindestens ein Mittel zur Speicherung einer Kopie des Objekts in einem von den Mitteln zur Speicherung eines Objekts abgesetzten Prozeß,
- Mittel zur Änderung der änderbaren Daten des Objekts,
- Mittel zur Benachrichtigung des mindestens einen Mittels zur Speicherung einer Kopie des Objekts darüber, daß die änderbaren Daten des Objekts geändert worden sind und
- Mittel zur Zusendung einer Kopie der geänderten Daten des Objekts an eine Kopie des Objekts in Antwort auf eine Anforderung des abgesetzten Prozesses, in dem die Kopie des Objekts gespeichert ist, für eine Kopie der geänderten Daten aufweist.
- Die Daten für das gemeinsam genutzte Objekt können von Prozessen, die gerade tatsächlich auf das Objekt zugreifen, aktualisiert werden. Ein Benachrichtigungsmechanismus (BOUing) wird dazu benutzt, andere Prozesse darüber zu informieren, daß das Objekt sich geändert hat. Diese Prozesse sind dann dafür verantwortlich, wenn notwendig, die Daten des gemeinsam genutzten Objekts neu zu lesen. Durch den BOUing Mechanismus werden keine Daten transportiert.
- Die vorliegende Erfindung wird nun an einem Beispiel beschrieben.
- Die Standardimplementierung eines Client-Server-Zugangs besteht darin, kleine Stücke von Code (manchmal als "message stubs" bezeichnet) in den Client- und Server-Prozessen zu benutzen, die eine Schnittstelle mit einer Form der Inter-Prozeß-Kommunikation (interprocess communication) (IPC) zu bilden. Der Zweck des Codes in dem Client-Prozeß besteht nur darin, Anforderungen an das Objekt in dem Server-Prozeß als Nachrichten zu dem Server- Prozeß unter Benutzung des IPC-Mechanismus weiterzuleiten. Der IPC-Prozeß wird die Nachrichten in eine Warteschlange bei dem Server-Prozeß stellen, wobei die kleine Menge Code in dem Server-Prozeß die Warteschlange liest und die Anforderungen an das Objekt zur Bedienung leitet. Den ganzen Prozeß kann man sich als eine Röhre (Pipe) denken, die an einem Ende von dem oder den Client-Prozeß bzw. -Prozessen Anforderungen entgegen nimmt und sie an dem anderen Ende der Röhre an das entsprechende Objekt in dem Server-Prozeß liefert. Alle zur Bedienung der Anforderungen (und nicht nur zum Transport) notwendigen Aktivitäten werden in dem Server-Prozeß abgewickelt.
- Die Implementierung des "shared object"-Zugangs ersetzt die "Röhre" (Pipe) durch einen Mechanismus, der Anforderungen lokal innerhalb des Prozesses unter Benutzung des gemeinsam genutzten Objekts behandelt. Nur wenn solche Anforderungen die internen Daten des gemeinsam genutzten Objekts ändern, wird die Inter- Prozeß-Kommunikation benutzt werden, um sicherzustellen daß andere Kopien des Objekts mit den Änderungen abglichen werden.
- Objekte, die gemeinsam innerhalb des Systems benutzt werden sollen, müssen als solche zur Kompilierungszeit identifiziert sein. Dies wird dadurch erreicht, daß eine Klasse für gemeinsam genutzte Objekte definiert wird, von der Objekte, die diese Eigenschaft aufweisen möchten, erben können. Jedesmal wenn ein gemeinsam genutztes Objekt erzeugt wird, wird eine Kopie dieses Objekts innerhalb des anfordernden Prozesses erzeugt. Wenn dies das erste Mal ist, daß das Objekt erzeugt wird, dann werden zwei weitere Elemente erzeugt; eine Kopie der Daten des Objekts wird zusammen mit einer "benutzt-von"-Tabelle, in die ein Bezeichner für den anfordernden Prozeß geschrieben wird, in dem gemeinsam genutzten Speicher erzeugt. Nachfolgende Erzeugungen dieses gemeinsam genutzten Objekts durch andere Prozesse werden zu einer Kopie des Objekts, die innerhalb des Prozesses erzeugt wird, führen, deren interne Daten eine genaue Kopie der in dem gemeinsam genutzten Speicher gespeicherten Daten sind, und die "benutzt-von"-Tabelle wird mit der ID (Prozeßidentifikation) des anfordernden Prozesses aktualisiert.
- Den gemeinsam genutzten Speicher kann man sich als einen globalen Datenbereich denken, auf den jeder beliebige Prozeß zugreifen kann.
- Jedesmal wenn eine Anforderung für ein gemeinsam genutztes Objekt gemacht wird, wird diese Anfrage lokal von dem Prozeß bedient. Wenn die Anforderung zu einer Änderung der internen Daten des gemeinsam genutzten Objekts führt, wird die Kopie der Daten des gemeinsam genutzten Objekts im gemeinsam benutzten Speicher aktualisiert, um die Änderung(en) wiederzugeben. Zusätzlich dazu wird es notwendig sein, ein Signal an jeden anderen Prozeß, der das veränderte gemeinsam genutzte Objekt benutzt, zu senden, um anzuzeigen, daß eine Änderung stattgefunden hat, so daß sie ihre lokalen Kopien des gemeinsam genutzten Objekts mit den in dem gemeinsam genutzten Speicher gespeicherten geänderten Daten abgleichen können. Dieser Signalisierungsprozeß wird mit "Broadcast on Update" (oder BOU) (Rundsenden bei Aktualisierung) bezeichnet und dadurch realisiert, daß die "benutzt-von"-Tabelle benutzt wird, um ein Signal an alle als Benutzer des gemeinsam genutzten Objekts registrierten Prozesse zu senden. Jeder Prozeß, der gemeinsam genutzte Objekte enthält, muß einen BOU-Signalhandler enthalten, der sicherstellt, daß das BOU-Signal zu den notwendigen Aktualisierungen führt.
- Es ist natürlich möglich, daß ein Prozeß ab einem Zeitpunkt ein gemeinsam genutztes Objekt nicht länger benötigt. Wenn dies passiert, wird das gemeinsam genutzte Objekt aus dem Prozeß entfernt und die "benutzt-von"-Tabelle geändert, in dem die Identifikation des anfordernden Prozesses gelöscht wird.
Claims (4)
1. Verfahren zum Betreiben eines objektorientierten Systems,
das
Mittel zur Speicherung eines veränderbare Daten
enthaltenden Objekts und
Mittel zur Bereitstellung einer Kopie des Objekts für
mindestens einen von den Mitteln zur Speicherung eines
Objekts abgesetzten Prozeß, der ein entsprechendes Mittel
zur Speicherung der Kopie des Objekts aufweist, enthält,
enthaltend die Schritte:
Zusenden einer Kopie des Objekts an mindestens einen der
Prozesse, die von den Mitteln zur Speicherung eines
Objekts abgesetzt sind,
Speichern der Kopie des Objekts in einem entsprechenden
Mittel zur Speicherung,
Ändern der änderbaren Daten des Objekts,
Mitteilen des Vorhandenseins der Änderung an den oder
jeden abgesetzten Prozeß, der eine Kopie des Objekts hat
und
Zusenden einer Kopie der geänderten Daten an den oder
jeden abgesetzten Prozeß in Antwort auf eine Anforderung
der geänderte Daten von dem oder jedem abgesetzten
Prozeß.
2. Verfahren nach Anspruch 1, weiter aufweisend die
Schritte:
Ändern der änderbaren Daten einer Kopie des Objekts und
Mitteilen der geänderten Daten der Kopie an das Objekt,
wobei der Schritt des Änderns der änderbaren Daten die
änderbaren Daten des Objekts so ändert, daß sie den in
der Kopie des Objekts enthaltenen änderbaren Daten
entsprechen.
3. Objektorientiertes System, enthaltend:
Mittel zur Speicherung eines änderbare Daten enthaltenden
Objekts,
mindestens ein Mittel zur Speicherung einer Kopie des
Objekts in einem von den Mitteln zur Speicherung eines
Objekts abgesetzten Prozeß,
Mittel zur Änderung der änderbaren Daten des Objekts,
Mittel zur Benachrichtigung des mindestens einen Mittels
zur Speicherung einer Kopie des Objekts darüber, daß die
änderbaren Daten des Objekts geändert worden sind und
Mittel zur Zusendung einer Kopie der geänderten Daten des
Objekts an eine Kopie des Objekts in Antwort auf eine
Anforderung des abgesetzten Prozesses, in dem die Kopie
des Objekts gespeichert ist, für eine Kopie der
geänderten Daten.
4. System nach Anspruch 3, enthaltend:
Mittel zur Änderung der änderbaren Daten einer Kopie des
Objekts,
in dem das Mittel zur Änderung der änderbaren Daten des
Objekts die änderbaren Daten des Objekts so ändert, daß
sie den geänderten Daten der Kopie des Objekts
entsprechen.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB9202072A GB2263797B (en) | 1992-01-31 | 1992-01-31 | Object orientated system |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69226858D1 DE69226858D1 (de) | 1998-10-08 |
DE69226858T2 true DE69226858T2 (de) | 1999-01-21 |
Family
ID=10709599
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69226858T Expired - Lifetime DE69226858T2 (de) | 1992-01-31 | 1992-12-18 | Kommunikationssystem |
Country Status (12)
Country | Link |
---|---|
US (1) | US5734902A (de) |
EP (1) | EP0553560B1 (de) |
JP (1) | JPH05282165A (de) |
CN (1) | CN1059747C (de) |
AT (1) | ATE170640T1 (de) |
AU (1) | AU662784B2 (de) |
CA (1) | CA2088429A1 (de) |
DE (1) | DE69226858T2 (de) |
DK (1) | DK0553560T3 (de) |
ES (1) | ES2121829T3 (de) |
FI (1) | FI930389L (de) |
GB (1) | GB2263797B (de) |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3360844B2 (ja) * | 1992-02-04 | 2003-01-07 | ソニー株式会社 | ディジタル画像信号の伝送装置およびフレーム化方法 |
US5649102A (en) * | 1993-11-26 | 1997-07-15 | Hitachi, Ltd. | Distributed shared data management system for controlling structured shared data and for serializing access to shared data |
EP0733970B1 (de) * | 1995-03-22 | 2003-05-14 | Sun Microsystems, Inc. | Vorrichtung und Verfahren zur Verwaltung von Objektsammlungen |
US5956712A (en) * | 1995-06-07 | 1999-09-21 | International Business Machines Corporation | Byte range locking in a distributed environment |
US5892946A (en) * | 1995-09-12 | 1999-04-06 | Alcatel Usa, Inc. | System and method for multi-site distributed object management environment |
WO1997013210A1 (en) * | 1995-10-04 | 1997-04-10 | Numetrix Limited | Method and system for dynamically modelling and visualizing data |
US6886167B1 (en) * | 1995-12-27 | 2005-04-26 | International Business Machines Corporation | Method and system for migrating an object between a split status and a merged status |
GB2308780B (en) * | 1995-12-28 | 1998-06-17 | Nokia Telecommunications Oy | Telecommunications network mamagement system |
EP0978035B1 (de) * | 1996-06-25 | 2005-02-02 | Unisys Corporation | Verfahren und gerät zur objektverwaltung in einer verteilten umgebung |
AU3805997A (en) * | 1996-07-22 | 1998-02-10 | Cabletron Systems, Inc. | Method and apparatus for coordinated management of a shared object |
EP0825506B1 (de) | 1996-08-20 | 2013-03-06 | Invensys Systems, Inc. | Verfahren und Gerät zur Fernprozesssteuerung |
US6061740A (en) * | 1996-12-09 | 2000-05-09 | Novell, Inc. | Method and apparatus for heterogeneous network management |
US6710786B1 (en) | 1997-02-03 | 2004-03-23 | Oracle International Corporation | Method and apparatus for incorporating state information into a URL |
US6845505B1 (en) * | 1997-02-03 | 2005-01-18 | Oracle International Corporation | Web request broker controlling multiple processes |
US6687761B1 (en) * | 1997-02-20 | 2004-02-03 | Invensys Systems, Inc. | Process control methods and apparatus with distributed object management |
US6021413A (en) * | 1997-04-01 | 2000-02-01 | The University Of Illinois Board Of Trustees | Application-directed variable-granularity caching and consistency management |
US6353859B1 (en) * | 1997-04-30 | 2002-03-05 | International Business Machines Corporation | Object-oriented apparatus and method for controlling accesses to objects in a distributed object environment |
EP0979450B1 (de) * | 1997-04-30 | 2002-06-19 | The Foxboro Company | Verfahren und vorrichtung zur synchronisierung von auf einem digitalen datenverarbeitungssystem laufenden prozessen |
US6334114B1 (en) | 1997-10-31 | 2001-12-25 | Oracle Corporation | Method and apparatus for performing transactions in a stateless web environment which supports a declarative paradigm |
US6301582B1 (en) * | 1998-03-30 | 2001-10-09 | International Business Machines Corporation | System and method for storage of shared persistent objects |
US6263360B1 (en) | 1998-06-01 | 2001-07-17 | Sri International | System uses filter tree and feed handler for updating objects in a client from a server object list |
JP3721274B2 (ja) * | 1998-10-15 | 2005-11-30 | 株式会社Pfu | 業務アプリケーション連携システムおよび記録媒体 |
US6418456B1 (en) * | 1998-11-24 | 2002-07-09 | International Business Machines Corporation | Clean-up of files in a network system |
AU5273100A (en) | 1999-05-17 | 2000-12-05 | Foxboro Company, The | Methods and apparatus for control configuration with versioning, security, composite blocks, edit selection, object swapping, formulaic values and other aspects |
US7089530B1 (en) | 1999-05-17 | 2006-08-08 | Invensys Systems, Inc. | Process control configuration system with connection validation and configuration |
US6788980B1 (en) | 1999-06-11 | 2004-09-07 | Invensys Systems, Inc. | Methods and apparatus for control using control devices that provide a virtual machine environment and that communicate via an IP network |
WO2002042853A1 (en) * | 2000-11-24 | 2002-05-30 | Mitsubishi Denki Kabushiki Kaisha | Method and apparatus for programming |
US20020184061A1 (en) * | 2001-06-01 | 2002-12-05 | Digate Thomas A. | Method and system for managing executive information |
US7660833B2 (en) * | 2003-07-10 | 2010-02-09 | Microsoft Corporation | Granular control over the authority of replicated information via fencing and unfencing |
US7761923B2 (en) | 2004-03-01 | 2010-07-20 | Invensys Systems, Inc. | Process control methods and apparatus for intrusion detection, protection and network hardening |
WO2007064193A1 (en) * | 2005-12-01 | 2007-06-07 | Ditchitall Bvba | Client server network with replicated application state |
WO2007123753A2 (en) | 2006-03-30 | 2007-11-01 | Invensys Systems, Inc. | Digital data processing apparatus and methods for improving plant performance |
US8527454B2 (en) | 2007-08-29 | 2013-09-03 | Emc Corporation | Data replication using a shared resource |
US20090077777A1 (en) * | 2007-09-24 | 2009-03-26 | Horowitz Michael S | Looking good fashion clip |
CN104407518B (zh) | 2008-06-20 | 2017-05-31 | 因文西斯系统公司 | 对用于过程控制的实际和仿真设施进行交互的系统和方法 |
US8463964B2 (en) | 2009-05-29 | 2013-06-11 | Invensys Systems, Inc. | Methods and apparatus for control configuration with enhanced change-tracking |
US8127060B2 (en) | 2009-05-29 | 2012-02-28 | Invensys Systems, Inc | Methods and apparatus for control configuration with control objects that are fieldbus protocol-aware |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4007450A (en) * | 1975-06-30 | 1977-02-08 | International Business Machines Corporation | Data sharing computer network |
US4432057A (en) * | 1981-11-27 | 1984-02-14 | International Business Machines Corporation | Method for the dynamic replication of data under distributed system control to control utilization of resources in a multiprocessing, distributed data base system |
DE3376590D1 (en) * | 1982-04-28 | 1988-06-16 | Int Computers Ltd | Data processing system |
JPS5939188A (ja) * | 1982-08-30 | 1984-03-03 | Hitachi Ltd | 状態変化デ−タ収集方法 |
US4558413A (en) * | 1983-11-21 | 1985-12-10 | Xerox Corporation | Software version management system |
CA1252903A (en) * | 1985-06-11 | 1989-04-18 | Frank D. Bartocci | Dynamic update of database directories using directed or undirected mechanisms |
US4714995A (en) * | 1985-09-13 | 1987-12-22 | Trw Inc. | Computer integration system |
US4714992A (en) * | 1985-11-26 | 1987-12-22 | International Business Machines Corporation | Communication for version management in a distributed information service |
US4714996A (en) * | 1985-11-26 | 1987-12-22 | International Business Machines Corporation | Impact calculation for version management in a distributed information service |
US4897781A (en) * | 1987-02-13 | 1990-01-30 | International Business Machines Corporation | System and method for using cached data at a local node after re-opening a file at a remote node in a distributed networking environment |
WO1989002631A1 (en) * | 1987-09-08 | 1989-03-23 | Digital Equipment Corporation | Naming service for networked digital data processing system |
CA1306501C (en) * | 1988-05-28 | 1992-08-18 | Toshimitsu Shimizu | Monitoring system for radio communication apparatus |
US5155847A (en) * | 1988-08-03 | 1992-10-13 | Minicom Data Corporation | Method and apparatus for updating software at remote locations |
US5136707A (en) * | 1988-10-28 | 1992-08-04 | At&T Bell Laboratories | Reliable database administration arrangement |
US5133075A (en) * | 1988-12-19 | 1992-07-21 | Hewlett-Packard Company | Method of monitoring changes in attribute values of object in an object-oriented database |
US5363498A (en) * | 1990-02-09 | 1994-11-08 | Hitachi, Ltd. | Method of controlling shared data among computers |
US5255387A (en) * | 1990-04-27 | 1993-10-19 | International Business Machines Corporation | Method and apparatus for concurrency control of shared data updates and queries |
DE69131094T2 (de) * | 1991-01-31 | 1999-07-29 | Hewlett Packard Co | Konferenzsystem |
US5367673A (en) * | 1991-08-23 | 1994-11-22 | Eastman Kodak Company | System for queueing request from remote stations for proof processing of files that are transmitted only when processing resources become available |
-
1992
- 1992-01-31 GB GB9202072A patent/GB2263797B/en not_active Expired - Lifetime
- 1992-12-18 AT AT92311577T patent/ATE170640T1/de not_active IP Right Cessation
- 1992-12-18 EP EP92311577A patent/EP0553560B1/de not_active Expired - Lifetime
- 1992-12-18 DK DK92311577T patent/DK0553560T3/da active
- 1992-12-18 DE DE69226858T patent/DE69226858T2/de not_active Expired - Lifetime
- 1992-12-18 ES ES92311577T patent/ES2121829T3/es not_active Expired - Lifetime
-
1993
- 1993-01-06 AU AU31061/93A patent/AU662784B2/en not_active Ceased
- 1993-01-27 JP JP5031324A patent/JPH05282165A/ja active Pending
- 1993-01-28 US US08/010,412 patent/US5734902A/en not_active Expired - Lifetime
- 1993-01-29 CA CA002088429A patent/CA2088429A1/en not_active Abandoned
- 1993-01-29 FI FI930389A patent/FI930389L/fi not_active Application Discontinuation
- 1993-01-30 CN CN93101247A patent/CN1059747C/zh not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP0553560A3 (en) | 1993-09-22 |
EP0553560B1 (de) | 1998-09-02 |
ATE170640T1 (de) | 1998-09-15 |
FI930389A0 (fi) | 1993-01-29 |
GB2263797A (en) | 1993-08-04 |
GB2263797B (en) | 1996-04-03 |
GB9202072D0 (en) | 1992-03-18 |
JPH05282165A (ja) | 1993-10-29 |
DE69226858D1 (de) | 1998-10-08 |
AU662784B2 (en) | 1995-09-14 |
FI930389A7 (fi) | 1993-08-01 |
AU3106193A (en) | 1993-08-05 |
FI930389L (fi) | 1993-08-01 |
CN1059747C (zh) | 2000-12-20 |
EP0553560A2 (de) | 1993-08-04 |
ES2121829T3 (es) | 1998-12-16 |
US5734902A (en) | 1998-03-31 |
DK0553560T3 (da) | 1999-05-31 |
CA2088429A1 (en) | 1993-08-01 |
CN1078336A (zh) | 1993-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69226858T2 (de) | Kommunikationssystem | |
DE69901291T2 (de) | Verfahren und vorrichtung zur datenübertragung zwischen der caches von netzwerkknoten | |
DE3689664T2 (de) | Verfahren und Gerät zur Verwaltung von veralteten Datenobjekten. | |
DE3854909T2 (de) | Cacheverwaltungsverfahren und System in einem anteilig genutzten Dateisystem | |
DE69214828T2 (de) | Kodeserver. | |
DE3689990T2 (de) | Flexible Datenübertragung für nachrichtenorientierte Protokolle. | |
DE69736748T2 (de) | Editierumgebung für objektmodelle und verfahren zu deren anwendung | |
DE69628965T2 (de) | Verfahren und Gerät zum Verwalten von Beziehungen zwischen Objekten in einer verteilten Objektumgebung | |
DE69322057T2 (de) | Verteiltes Datenverarbeitungssystem | |
DE69429686T2 (de) | Transaktionsverwaltung in objektorientiertem System | |
DE60312746T2 (de) | Wiederherstellung nach fehlern in datenverarbeitungsanlagen | |
DE69328162T2 (de) | Gerät und Verfahren zum Verfügbarstellen eines Teiles eines Namensraumes als ein Teil eines anderen Namensraumes | |
EP1194865B1 (de) | Verfahren zur datenpflege in einem netzwerk teilweise replizierter datenbanksysteme | |
DE69722512T2 (de) | Mehrrechnersystem mit einem die Anzahl der Antworten enthaltenden Kohärenzprotokoll | |
DE69719620T2 (de) | Vorrichtung und Verfahren zur Bestimmung von Server-Cluster-Topologien | |
DE69502381T2 (de) | Verfahren und vorrichtung zum steuern des zugriffs auf eine datenbank | |
DE69232881T2 (de) | Verbesserter Digitalprozessor mit verteiltem Speichersystem | |
DE69521839T2 (de) | Datenbanksystem | |
DE69129479T2 (de) | Verteiltes Rechnersystem | |
DE69531513T2 (de) | Vervielfältigungssystem | |
DE69703181T2 (de) | Registrierdateioptimierung in einem Client/Server-Rechnersystem | |
DE69803478T2 (de) | Ein/ausgabe weiterleitung in einem cachekohärenten rechnersystem mit gemeinsam genutztem plattenspeicher | |
DE60306932T2 (de) | Schnelle Datenbankreplikation | |
DE4423559A1 (de) | Datenverbindungsverfahren und Vorrichtung für Multiprozessor-Computersysteme mit gemeinsamem Speicher | |
DE69129298T2 (de) | Leitwegsteuerung für transaktionsbefehle |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8327 | Change in the person/name/address of the patent owner |
Owner name: MARCONI UK INTELLECTUAL PROPERTY LTD., COVENTRY, G |
|
8327 | Change in the person/name/address of the patent owner |
Owner name: ERICSSON AB, STOCKHOLM, SE |
|
8328 | Change in the person/name/address of the agent |
Representative=s name: 2K PATENTANWAELTE BLASBERG KEWITZ & REICHEL, PARTN |
|
R071 | Expiry of right |
Ref document number: 553560 Country of ref document: EP |