Beschreibung
Verfahren und Anordnung zur Projektierung und/oder
Programmierung eines Projektes einer industriellen
Automatisierungsanordnung
Die Erfindung betrifft ein Verfahren zur Projektierung und/oder Programmierung eines Projektes einer industriellen Automatisierungsanordnung durch eine Mehrzahl Anwender gemäß dem Oberbegriff des Patentanspruchs 1, und eine Anordnung zur Durchführung des Verfahrens gemäß dem Oberbegriff des Patent¬ anspruchs 11. Zum Projektieren und Programmieren von Anordnungen und Anlagen in der industriellen Automatisierungstechnik werden sog. Engineering-Systeme verwendet. Diese Engineering-Systeme be¬ stehen in der Regel aus einer Vielzahl von Anwendungen, die die verschiedenen Aspekte bei der Projektierung und Program- mierung industrieller Automatisierungsanordnungen abdecken. Solche Anwendungen umfassen beispielsweise Hilfsmittel für die Projektierung (Anordnung und Verschaltung) der Komponenten (Hardware-Projektierung), Anwendung für die Programmierung von Steuerungen (PLC's = Programmable Logic Controller), Anwendungen für die Programmerstellung für Bedien- und Beobachtungsgeräte (HMI = Human Machine Interface) , Hilfsmittel für die Planung einer Vernetzung, Hilfsmittel für die Programmierung und Projektierung (Auslegung) von Antrieben etc. Oft sind diese Anwendungen Bestandteil einer sog. „Software- Suite", d.h., dass diese Anwendungen Bestandteil eines Pro¬ grammpaketes sind, welches oft eine gemeinsame, übergeordnete Benutzeroberfläche aufweist und auf einem sog. Engineering- Arbeitsplatz installiert ist. Bei größeren Anlagen und Projekten wird die Entwicklung, Projektierung und Programmierung häufig arbeitsteilig von mehre¬ ren Anwendern durchgeführt, die mehrere Projektierungs- Arbeitsplätze verwenden; man spricht auch von einem Multi-
User-System. Die Programmierung bzw. die Projektierung wird dabei oft sowohl nach Funktionen, beispielsweise Hardware- Projektierung, PLC-Programmierung, HMI-Programmierung o.a., als auch innerhalb der jeweiligen Funktionen, beispielsweise für verschiedene Funktionen von Komponenten oder für verschiedene Bausteine in PLC-Programmen etc., auf verschiedene Entwickler und Anwender verteilt.
Jede der Anwendungen arbeitet dabei mit Daten, die allgemein auch Engineering-Daten genannt werden. Diese Daten können beispielsweise die Projektierung der Hardware-Komponenten beschreiben, Beziehungen zwischen einzelnen Geräten und Komponenten darstellen oder aber auch die Programme sein, die bei der Programmierung von Controllern, HMI-Geräten etc. erstellt und bearbeitet werden.
Die verschiedenen Bestandteile eines Engineering-Projekts sind in der Regel nicht vollständig voneinander unabhängig. So werden zwar beispielsweise in PLC-Programmen andere Unter- programme oder Funktionen aufgerufen, als beispielsweise bei den HMI-Programmen desselben Projekts. Dennoch bestehen auch Abhängigkeiten zwischen den einzelnen Teil-Projekten; so sind beispielsweise sowohl die PLC-Programme als auch die HMI- Proj ektierung bzw. die HMI-Programme in der Regel von der Hardware-Projektierung abhängig. In einem anderen Beispiel referenzieren die Programme, die die Bildschirme der Bedien- und Beobachtungsgeräte beschreiben (sog. HMI-Screens) , Vari¬ ablen (sog. Tags) der PLC-Programme, um diese anzuzeigen. Kurz gesagt benötigen Anwendungen zumindest lesenden, oft aber auch schreibenden Zugriff auf die Engineering-Daten anderer Anwendungen.
Um jede Anwendung und damit jedem für die Projektierung und Programmierung benutzten Arbeitsplatz einen Zugriff auf alle benötigten Engineering-Daten, die im Folgenden auch als Engineering-Objekte oder kurz Objekte bezeichnet werden sollen, zu ermöglichen, wurden bislang die Multi-User-Systeme für das Engineering der industriellen Automatisierungsanordnungen
meist in einer sog. Client-Server-Architektur implementiert. Dabei ist ein zentraler Server vorgesehen, der den jeweils gültigen Datenbestand des Engineering-Projekts und somit alle von den Anwendungen verwendeten Objekte speichert. Die Ar- beitsplätze mit den Anwendungen, auch als Clients bezeichnet, fordern dabei die jeweils benötigten Daten, die entweder gerade bearbeitet werden sollen oder auf die zumindest ein le¬ sender Zugriff nötig ist, jeweils vom Server an. In der Regel werden diese Daten auf den Arbeitsplatzrechnern (Clients) zwischengespeichert (man spricht auch vom „Caching") , um eine akzeptable Reaktionszeit und Arbeitsgeschwindigkeit der je¬ weiligen Anwendung zu gewährleisten.
Die Anwendungen speichern geänderte Daten, nachdem die Ände- rungen abgeschlossen sind und die geänderten Daten für andere Anwendungen zugänglich sein sollen, ebenfalls wieder auf dem Server. Danach müssen alle anderen Anwendungen und Arbeitsplätze, die die entsprechenden Daten für einen lesenden
Zugriff zwischengespeichert („gecacht") haben, die bisher verwendeten Daten verwerfen und ggf. erneut von dem Server abrufen. Dabei ist es bekannt, durch sog. „Concurrent- Version-Systems" (Berechtigungsverwaltungen), sog. Ein- und Auscheck-Verfahren und andere Strategien die Konsistenz der Daten zu gewährleisten, d.h., dass beispielsweise eine Bear- beitung (schreibender Zugriff) auf ein bestimmtes Objekt immer nur durch eine einzige Anwendung gestattet ist, während das Lesen desselben Objektes allen Anwendungen zugleich gestattet ist, o.ä. Durch die Zentralisierung des Datenbestandes, also durch die zentrale Speicherung der Objekte eines Engineering-Projekts, ergibt sich jedoch eine Beschränkung des Datendurchsatzes, was vor allem bei großen Engineering-Projekten und bei einer Verteilung der Arbeitsplätze auf verschiedene Standorte oder gar Kontinente zu langen Antwortzeiten bei Datenanforderungen und zu anderen Performance-Problemen führt.
Es ist also eine Aufgabe der vorliegenden Erfindung, den Zugriff auf Objekte von Engineering-Daten bei der Projektierung und/oder Programmierung einer industriellen Automatisierungsanordnung durch eine Mehrzahl an Anwendern oder Arbeits- platze zu verbessern.
Es ist dabei eine zentrale Idee der erfindungsgemäßen Lösung der Aufgabe, anstelle der klassischen Client-Server- Architektur für die Datenhaltung beim Engineering einer in- dustriellen Automatisierungsanordnung eine sog. Peer-to-Peer- Architektur einzusetzen, wobei eine Datenstruktur, welche vorzugsweise auf verteilten Hash-Tabellen basiert, Auskunft über den jeweiligen Speicherort der Objekte bzw. von Objekt- Gruppen bietet. Dabei soll vorzugsweise nicht zwischen Datei- en des Projekts unterschieden werden, sondern zwischen Objekten bzw. Objekt-Gruppen.
Die Aufgabe wird insbesondere mit einem Verfahren gemäß dem Patentanspruch 1 und mit einer Anordnung gemäß dem Patentan- spruch 11 gelöst.
Dabei wird ein Verfahren zur Projektierung und/oder Programmierung eines Projekts einer industriellen Automatisierungs¬ anordnung durch eine Mehrzahl Anwender vorgeschlagen, wobei jedem der Anwender jeweils ein Arbeitsplatz mit zumindest einer Anwendung für die Projektierung und/oder Programmierung zugeordnet ist, wobei das Projekt aus einer Mehrzahl Objekte besteht, und wobei auf zumindest eines der Objekte von einer Mehrzahl der Arbeitsplätze zugegriffen wird. Dabei wird zu- mindest eine Anzahl der Objekte zu Objekt-Gruppen gruppiert, wobei jede der Objekt-Gruppen einem Arbeitsplatz zugeordnet wird, wobei die Objekte einer Objekt-Gruppe jeweils in einem physikalischen Speicher des dieser Objekt-Gruppe zugeordneten Arbeitsplatzes gespeichert werden, wobei den Objekt-Gruppen jeweils ein Schlüssel zugeordnet und in einer Datenstruktur gespeichert wird, wobei die Datenstruktur für jeden der
Schlüssel eine Identifikation für denjenigen der Arbeitsplätze angibt, in dessen physikalischen Speicher die dem Schlüs-
sei zugeordnete Objekt-Gruppe und deren Objekte gespeichert sind, und wobei von einem Arbeitsplatz für den Zugriff auf ein Objekt auf die Datenstruktur zugegriffen, anhand des Zugriffs die dem Schlüssel der zugehörigen Objekt-Gruppe zu- geordnete Information über den Speicherort ermittelt, und an¬ hand dessen auf das Objekt zugegriffen wird. Durch die Anwendung dieses Verfahrens wird eine Peer-to-Peer-Architektur für die Datenverwaltung bzw. Objekt-Verwaltung bei der Projektierung und/oder Programmierung eines Projektes durch eine Mehr- zahl Anwender- bzw. eine Mehrzahl Arbeitsplätze (Multi-User- Betrieb) erreicht, wodurch sich eine höherer Datendurchsatz erreichen lässt, weil nicht alle Arbeitsplätze (Clients) im¬ mer auf einen zentralen Server zugreifen müssen, um Daten bzw. Objekte zu lesen bzw. abzurufen.
Die Aufgabe wird weiter durch eine Anordnung zur Projektie¬ rung und/oder Programmierung eines Projektes einer industriellen Automatisierungsanordnung durch eine Mehrzahl Anwender gelöst, wobei jedem der Anwender jeweils ein Arbeitsplatz mit zumindest einer Anwendung für die Projektierung und/oder Programmierung zugeordnet ist, wobei das Projekt aus einer Mehrzahl an Objekten besteht, und wobei auf zumindest eines der Objekte von einer Mehrzahl der Arbeitsplätze zugegriffen werden kann. Dabei sind die Objekte zu Objekt-Gruppen grup- piert, wobei die Objekt-Gruppen mit den Objekten auf die physikalischen Speicher mehrerer Arbeitsplätze verteilt sind, wobei jeder Objekt-Gruppe ein Schlüssel in einer Datenstruk¬ tur zugeordnet ist, wobei dem Schlüssel in der Datenstruktur jeweils derjenige der Arbeitsplätze zugeordnet ist, in dessen physikalischem Speicher die Objekte der betreffenden Objekt- Gruppe gespeichert sind. Mit einer solchen erfindungsgemäßen Anordnung werden die Vorteile des erfindungsgemäßen Verfahrens realisiert. Vorteilhafte Ausgestaltungen des erfindungsgemäßen Verfahrens sind durch die Abhängigen Patentansprüche 2 bis 10 angegeben; vorteilhafte Ausgestaltungen der erfindungsgemäßen Anordnung sind in den abhängigen Patentansprüchen 12 bis 14 angegeben.
Dabei gelten die Merkmale und Vorteile der Ausgestaltungen des erfindungsgemäßen Verfahrens auch sinngemäß für die erfindungsgemäße Anordnung, und umgekehrt. Ein besonders effektiver Zugriff auf die Objekte der Enginee¬ ring-Daten ergibt sich, wenn als die Datenstruktur eine verteilte Hash-Tabelle verwendet wird. Dabei können als die Ob¬ jekte nicht nur einzelne Dateien referenziert werden, sondern auch einzelne Objekte innerhalb von Dateien mit mehreren Ob- jekten auf der einen Seite, und andererseits auch Gruppen von Dateien mit einer beliebigen Anzahl an Objekten. Insbesondere durch die Möglichkeit, statt einzelner Objekte ganze Objekt- Gruppen zu referenzieren, die vorzugsweise thematisch oder funktional in einem Zusammenhang zueinander stehen, kann die Anzahl der Tabelleneinträge in der Datenstruktur bzw. die Anzahl der erforderlichen Schlüssel und somit auch die Anzahl zu unterscheidender Speicherorte optimiert werden. Dabei ist es eine vorteilhafte Eigenschaft der verteilten Hash- Tabellen, dass die Schlüssel optimal auf einen sog. linearen Wertebereich verteilt werden können, so dass es möglich ist, die sog. „Speicherlast" gleichmäßig auf die Arbeitsplätze mit den physikalischen Speichern, auch „Knoten" oder "Clients" genannt, zu verteilen. Eine solche Datenstruktur kann durch ihre besonderen Eigenschaften selbstorganisierend und selbst- optimierend ausgeführt werden. Vorteilhaft kann als Speiche¬ rort auch eine URL (Uniform Ressource Locator) oder eine andere Information zum Auffinden des Objekts verwendet werden.
Wie bei anderen bekannten verteilten Speicherlösungen und insbesondere bei den bekannten Peer-to-Peer-Anordnungen kann es problematisch sein, wenn einzelne Arbeitsplätze oder Kno¬ ten temporär oder dauerhaft ausfallen bzw. nicht erreichbar sind, weil dann möglicherweise nicht mehr alle benötigten Da¬ ten bzw. Objekte für die verbleibenden Arbeitsplätze oder Knoten verfügbar sind. Vorteilhaft werden deswegen Kopien von Objekten oder Objekt-Gruppen in den physikalischen Speichern weiterer Arbeitsplätze gespeichert, wobei in einer besonderen Ausführungsform ein Arbeitsplatz nach Art eines zentralen
Servers Kopien aller Objekte bzw. Objekt-Gruppen halten kann. Insbesondere kann dieser Arbeitsplatz auch eine vollständige Kopie der verteilten Hash-Tabelle umfassen, wobei diese vor¬ teilhafterweise auf die anderen Arbeitsplätze repliziert wird. Dieser Vorgang der Replikation muss dabei nur in den Fällen wiederholt werden, in denen eine Neu-Organisation der Verteilung der Objekte auf die einzelnen Arbeitsplätze er¬ folgt oder Objekte geändert werden (durch Löschen oder Neuanlegen), aber nicht, wenn lediglich ein Objekt inhaltlich geändert wird, beispielsweise in Folge einer Bearbeitung.
Für einen optimalen Zugriff auf ein in der Bearbeitung befindliches Objekt, was sowohl einen rein lesenden als auch einen schreibenden Zugriff umfasst, wird vorteilhafterweise eine Kopie des Objektes in einen physikalischen Speicher des bearbeitenden bzw. benutzenden Arbeitsplatzes geladen, wobei im Falle eines schreibenden Zugriffs auf das Objekt dieses Objekt an seinem Original-Speicherplatz für schreibende
Zugriffe durch andere Arbeitsplätze gesperrt wird. Nachdem das bearbeitete Objekt an seinem mittels eines Schlüssels der Datenstruktur definierten Speicherort verändert wird („Up¬ date") , werden vorteilhafterweise alle anderen Arbeitsplätze bzw. Anwendungen, die zu diesem Zeitpunkt einen lesenden Zugriff auf dieses Objekt bzw. einen lesenden Zugriff auf eigene Kopien dieses Objektes durchführen, dazu aufgefordert, durch einen erneuten Zugriff auf das geänderte Objekt die Da¬ ten-Konsistenz in der Anordnung wieder herzustellen. Dazu können die lesenden Zugriffe registriert werden, um gezielt Meldungen mit der Aufforderungen zum erneuten Laden ("Re- Load") der geänderten Objekte versenden zu können.
Wie bereits erwähnt, können Kopien von Objekten bzw. Objekt- Gruppen auf weiteren Arbeitsplätzen, insbesondere auf einem als zentraler Server ausgebildeten Arbeitsplatz ausgelagert sein, wobei letztgenannter besonderer Arbeitsplatz nicht notwendigerweise über andere Anwendungen zur Projektierung und/oder Programmierung verfügen muss. Vorteilhafterweise sind die Speicherorte dieser „Sicherungskopien" der Objekte,
die dann benutzt werden sollen, wenn ein Objekt von seinem zugeordneten Arbeitsplatz nicht verfügbar ist, ebenfalls in der Datenstruktur oder einer weiteren Datenstruktur hinterlegt, so dass ein schneller Zugriff auf die Kopien gewähr- leistet ist. Alternativ können jedoch auch Suchfunktionen realisiert sein, wobei ein erster Arbeitsplatz an einige oder alle der anderen Arbeitsplätze eine sog. Suchmeldung ver¬ schickt, wobei die Suchmeldung das gewünschte Objekt bzw. die gewünschte Objekt-Gruppe spezifiziert. Solche Suchmeldungen können auch bei einem Fehler oder Ausfall der Datenstruktur zum Auffinden von Objekten oder zur Wiederherstellung der Datenstruktur eingesetzt werden.
Vorteilhaft werden die Zugriffe auf die Datenstruktur bzw. auf die darin verwalteten Objekte bzw. Objekt-Gruppen und die zugreifenden Arbeitsplätze statistisch erfasst, so dass es möglich ist, zu festgelegten Zeitpunkten („Optimierungslauf") oder fortwährend („dynamisch") die Speicherorte der Objekte und Objekt-Gruppen zu verändern und dabei zu optimieren, so dass Anzahl und Umfang der Übertragung von Objekten über ein Datennetzwerk minimiert werden können und Sicherheitsrichtli¬ nien, beispielsweise zur redundanten Speicherung wichtiger Objekte, umgesetzt werden können. Die Anzahl der Objekte, die einer Objekt-Gruppe zugeordnet ist, kann im Laufe der Zeit variieren. Vorteilhaft wird si¬ chergestellt, dass solche Objekt-Gruppen, die dauerhaft über¬ haupt kein Objekt mehr aufweisen, aus der Datenstruktur entfernt oder mit anderen Objekt-Gruppen zusammengefasst werden. Andererseits sollte auch sichergestellt sein, dass jedes Ob¬ jekt auch einer Objekt-Gruppe zugeordnet ist. In einer beson¬ deren Ausführungsform kann es vorteilhaft sein, wenn Objekte auch mehreren Objekt-Gruppen zugeordnet sein können, insbesondere dann, wenn es sich um solche Objekte handelt, auf die regelmäßig nur lesender Zugriff erforderlich ist. Vorteilhaft ist zudem auch ein Optimierungsalgorithmus vorgesehen, der die Gruppen-Struktur derart optimiert, dass die Anzahl der Gruppen auf der einen Seite nicht zu groß wird, um einen
schnellen Zugriff auf die Datenstruktur zu gewährleisten, aber auf der anderen Seite zu einer derart fein-granularen Strukturierung führt, dass sich der Verteilung der Objekt- Gruppen auf die Arbeitsplätze hinsichtlich Speichervolumen und Zugriffszeiten optimieren lässt. Dazu sind den Objekten vorteilhaft Attribute in Form von Schlagworten oder sog. „Tags" zugeordnet, die einer Aussage über Funktionalität, Zugriffsart (lesen oder lesen und schreiben) etc. betreffen.
Ausführungsbeispiele des erfindungsgemäßen Verfahrens sind nachfolgend anhand der Zeichnungen beschrieben. Sie dienen gleichzeitig der Erläuterung eines Ausführungsbeispiels für eine erfindungsgemäße Anordnung. Dabei zeigen:
Figur 1 eine Anordnung zur Projektierung und/oder Programmierung eines Projektes gemäß dem Stand der Tech¬ nik,
Figur 2 eine erfindungsgemäße Anordnung mit einer Datenstruktur und einer verteilten Speicherung von Objekten auf verschiedene Arbeitsplätze, und
Figur 3 die Anordnung gemäß der Figur 2, wobei einer der
Arbeitsplätze ausgefallen bzw. nicht erreichbar ist .
In der Figur 1 ist eine Anordnung zur Projektierung und/oder Programmierung eines Projektes einer industriellen Automatisierungsanordnung gemäß dem Stand der Technik dargestellt. Dabei sind drei Arbeitsplätze CL1, CL2, CL3 („Clients") vor¬ gesehen, die jeweils Anwendungen (nicht dargestellt) für die Projektierung bzw. Programmierung verschiedener Aspekte der Automatisierungsanordnung umfassen. In diesem Beispiel umfasst der Arbeitsplatz CL1 Anwendungen für eine Hardware- Projektierung („HW"), der Arbeitsplatz CL2 Anwendungen für die Programmierung von Steuerungen („PLC"), und der dritte Arbeitsplatz CL3 umfasst Anwendungen und Hilfsmittel für die Programmierung und Projektierung von Beobachten- und Bedien-
geraten („HMI"). Ein vierter Arbeitsplatz CS („Central Server") umfasst keine Anwendungen zur Projektierung und/oder Programmierung, sondern ist ein Server mit einer Datenbank ED („Engineering Data") , welche die Engineering-Daten eines Pro- jektes umfasst. Dabei soll im Folgenden zwischen drei Objekt- Gruppen Dl, D2, D3 mit jeweils einer Vielzahl von Objekten unterschieden werden; in diesem Beispiel beziehen sich die Objekte der Objekt-Gruppe Dl auf die Hardware-Projektierung, die Objekte der Objekt-Gruppe D2 auf die Programmierung der Steuerungen und die Objekte der Objekt-Gruppe D3 auf die
Hardware- und Software-Projektierung bzw. Programmierung von Bedien- und Beobachtungsgeräten. Den Arbeitsplätzen CL1, CL2, CL3 ist jeweils ein physikalischer Speicher LC1, LC2, LC3 („Local Cache") zugeordnet, also beispielsweise einen Fest- plattenspeicher der jeweils verwendeten Workstation oder des jeweils verwendeten Personal-Computers. In diesen Spei¬ chereinrichtungen LC1, LC2, LC3 können Kopien CD1, CD2 der Objekt-Gruppen Dl, D2, D3 geladen werden, wenn und so lange sie von der jeweiligen Anwendung des jeweiligen Arbeitsplat- zes CL1, CL2, CL3 verwendet werden. Diese Verwendung betrifft sowohl einen rein lesenden Zugriff, als auch einen lesenden und schreibenden Zugriff. Während einer Bearbeitung, die in der Regel mit einem schreibenden Zugriff abgeschlossen wird, einer Kopie CD1, CD2 einer Objekt-Gruppe Dl, D2, D3 bzw. der darin enthaltenen Objekte werden die Objekt-Gruppen Dl, D2, D3 bzw. die davon betroffenen Objekte in der Engineering- Datenbank ED gegen anderweitigen schreibenden Zugriff geschützt. Nach der Beendigung eines schreibenden Zugriffs, also nach einer Bearbeitung einer Kopie CD1, CD2, werden die geänderten Daten in die Engineering-Datenbank ED zurückgesichert, und andere Anwendungen, die derzeit Kopien CD1, CD2 für einen rein lesenden Zugriff verwenden, werden zu einem erneuten Lesen der entsprechenden Objekt-Gruppe Dl, D2, D3 bzw. der betroffenen Objekte aufgefordert. Über ein nicht dargestelltes Datennetzwerk sind für das Übertragen der Kopien CD1, CD2 logische Datenverbindungen RV1, RV2, RV3 vorgesehen .
In der Figur 2 ist eine erfindungsgemäße Anordnung darge¬ stellt, die prinzipiell auf der Anordnung gemäß dem Stand der Technik, erläutert anhand der Figur 1, basiert, so dass alle Komponenten und Objekte mit Bezugszeichen, die bereits aus der Figur 1 bekannt sind, hier nicht neu eingeführt und be¬ schrieben werden. Selbiges gilt auch für die später diskutierte Figur 3.
In der Anordnung gemäß der Figur 2 sind die Arbeitsplätze CL1, CL2, CL3 derart ausgebildet, dass diese untereinander Daten, insbesondere Objekte und Objekt-Gruppen Dl, D2, D3 bzw. Kopien CD1, CD2, CD3, direkt miteinander austauschen können; die dazu notwendigen logischen Verbindungen sind am linken Bildrand anhand von Doppelpfeilen gekennzeichnet. Die Arbeitsplätze CL1, CL2, CL3 sowie der Arbeitsplatz CS mit dem zentralen Server haben nun jeweils eine Kopie einer verteilten Hash-Tabelle DHT („Distributed Hash Table") gespeichert bzw. haben Zugriff auf eine solcher verteilte Hash-Tabelle DHT, die als eine Datenstruktur anhand von Schlüsseln, die jeder Objekt-Gruppe Dl, D2, D3 zugeordnet sind, Angaben über den derzeitigen Speicherort der Objekte der jeweiligen Objekt-Gruppe Dl, D2, D3 umfasst. In der Engineering-Datenbank ED, also in einem Arbeitsspeicher des Arbeitsplatzes CS, sind Kopien aller Objekt-Gruppen CD1, CD2, CD3 gespeichert, wobei diese über die Datenverbindungen FBI, FB2, FB3 („Fall Back") für den Fall zur Verfügung stehen, in dem die Arbeitsplätze CL1, CL2, CL3 sich nicht gegenseitig benötigte Objekte bzw. Objekt-Gruppen Dl, D2, D3 zur Verfügung stellen können. Im beschriebenen Ausführungsbeispiel gemäß der Figur 2 ist ein Zustand dargestellt, bei dem die Objekt-Gruppen Dl, D3 in dem physikalischen Speicher LC3 des Arbeitsplatzes CL3 ge¬ speichert sind, und die Objekt-Gruppe D2 im Speicherbereich LC2 des Arbeitsplatzes CL2. Das kann sich beispielweise dar- aus erklären, dass nach Abschluss der Hardware-Projektierung die zugeordneten Engineering-Daten der Objekt-Gruppe Dl vorwiegend von dem Arbeitsplatz CL3 (HMI-Programmierung) verwendet werden. Eine Überwachungsinstanz, die auf einer beliebi-
gen Hardware-Komponente der Anordnung angeordnet sein kann, hat dabei beispielsweise festgestellt, dass die Objekt-Gruppe Dl vorwiegend durch den Arbeitsplatz CL3 zugegriffen wird bzw. wurde, wonach eine Speicherung der Objekt-Gruppe Dl in einem Arbeitsspeicher LC3 des Arbeitsplatzes CL3 veranlasst wurde und dem entsprechend dem zugehörigen Schlüssel in der Datenstruktur, also der verteilten Hash-Tabelle DHT, der neue Speicherort zugeordnet wurde. Falls nun beispielsweise durch eine Anwendung des Arbeitsplatzes CL2 Zugriff auf die Objekte der Objekt-Gruppe Dl benötigt wird, gibt ein Zugriff auf die Datenstruktur der verteilten Hash-Tabelle DHT die Auskunft wieder, dass die entsprechende Objekt-Gruppe Dl in den physi¬ kalischen Speicher LC3 des Arbeitsplatzes CL3 abgelegt ist. Für einen Zugriff fordert dann die Anwendung des Arbeitsplat- zes CL2 eine Kopie der Objekt-Gruppe Dl von dem Arbeitsplatz CL3 an, wonach die Objekt-Gruppe Dl im Speicherbereich LC3 abgerufen und als Kopie zum Arbeitsplatz CL2 übertragen wird; dieser Vorgang ist in der Figur 2 nicht dargestellt. Neben den Kopien CD1, CD2, CD3 in der Engineering-Datenbank ED können weitere Kopien der Objekt-Gruppen Dl, D2, D3 auch in Speicherbereichen beliebiger anderer Arbeitsplätze zusätzlich gespeichert sein; auch dieser Zustand ist aus Gründen der Übersichtlichkeit nicht in der Figur 2 dargestellt.
In der Figur 3 ist der Zustand dargestellt, der sich ergibt, wenn, ausgehend von dem Zustand der Figur 2, der Arbeitsplatz CL2 nicht mehr über ein Datennetzwerk erreichbar ist bzw. ausgeschaltet ist oder aus einem anderen Grund seine Funktion nicht mehr erfüllen kann. Es sei angenommen, dass der Arbeitsplatz CL3 nunmehr Zugriff auf Objekte der Objektgruppe D2 benötigt. Ein Zugriff auf die Datenstruktur der verteilten Hash-Tabelle DHT ergibt jedoch dabei, dass ein Abruf der ent¬ sprechenden Daten von dem Arbeitsplatz CL2 möglich sein soll. Nachdem eine solche Verbindung jedoch nicht aufgebaut werden kann, ist ein Zugriff auf die Kopie CD2 der Objekt-Gruppe D2 notwendig. Im vorliegenden Ausführungsbeispiel sind auch die Speicherorte der Kopien CD1, CD2, CD3 anhand eines den ge-
wünschten Daten zugeordneten Schlüssels abrufbar; in einem alternativen, nicht dargestellten Ausführungsbeispiel können jedoch auch durch den Arbeitsplatz CL3 Suchmeldungen an die Arbeitsplätze CL1, CS gesendet werden, wobei zumindest in ei- nem solchen Fall der Arbeitsplatz CS, also der zentrale Server mit den Kopien CD1, CD2, CD3 in der Engineering-Datenbank ED, diese Suchnachricht beantworten und die Kopie CD2 zur Verfügung stellen würde. Zugleich wird die in der Engineering-Datenbank ED vorliegende Kopie CD2 der Objekt-Gruppe D2 zumindest für die Dauer der Nicht-Erreichbarkeit des Arbeits¬ platzes CL2 als ein „Original" behandelt, d.h., dass die in der nicht-erreichbaren Komponente, also dem Arbeitsplatz CL2, vorliegende Version in der Datenstruktur als ungültig markiert wird. Dies gilt jedoch in dem vorliegenden Ausführungs- beispiel nur für den Fall, in dem der Arbeitsplatz CL3 bzw. eine dort ablaufende Anwendung schreibenden Zugriff auf die Objekte der Objekt-Gruppe D2 vornimmt; in Falle eines rein lesenden Zugriffs kann das „Original" der Objekt-Gruppe D2 in der Version, die in dem Speicherbereich LC2 des Arbeitsplat- zes CL2 vorliegt, weiterhin gültig bleiben.