DE10049569A1 - Zugriff und Aktualisierung einer Konfigurationsdatenbank von verteilten physischen Orten innerhalb eines Prozeßsteuerungssystems - Google Patents
Zugriff und Aktualisierung einer Konfigurationsdatenbank von verteilten physischen Orten innerhalb eines ProzeßsteuerungssystemsInfo
- Publication number
- DE10049569A1 DE10049569A1 DE10049569A DE10049569A DE10049569A1 DE 10049569 A1 DE10049569 A1 DE 10049569A1 DE 10049569 A DE10049569 A DE 10049569A DE 10049569 A DE10049569 A DE 10049569A DE 10049569 A1 DE10049569 A1 DE 10049569A1
- Authority
- DE
- Germany
- Prior art keywords
- database
- configuration
- component
- server
- memory
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/18—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
- G05B19/414—Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller
- G05B19/4145—Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller characterised by using same processor to execute programmable controller and numerical controller function [CNC] and PC controlled NC [PCNC]
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0426—Programming the control sequence
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/31—From computer integrated manufacturing till monitoring
- G05B2219/31324—Distributed real time knowledge, database
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/31—From computer integrated manufacturing till monitoring
- G05B2219/31418—NC program management, support, storage, distribution, version, update
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/31—From computer integrated manufacturing till monitoring
- G05B2219/31422—Upload, download programs, parameters from, to station to, from server
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/33—Director till display
- G05B2219/33125—System configuration, reconfiguration, customization, automatic
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/36—Nc in input of data, input key till input tape
- G05B2219/36103—Adapt, update machining parameters automatically as function of state of processing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99932—Access augmentation or optimizing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99938—Concurrency, e.g. lock management in shared database
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99953—Recoverability
Abstract
Ein Konfigurationsdatenbank enthält mehrere Datenbanken, die über eine Vielzahl von physischen Orten innerhalb eines Prozeßsteuersystems verteilt sind. Jede der Datenbanken kann eine Teilmenge der Konfigurationsdaten speichern und diese Teilmenge der Konfigurationsdaten kann durch Benutzer an jedem der Standorte innerhalb des Prozeßsteuersystems zugreifbar sein. Ein Datenbankserver, der einen gemeinsam genutzten Cache hat, greift auf eine Datenbank in einer Weise zu, die es mehreren Teilnehmern ermöglicht, Konfigurationsdaten aus der Datenbank mit einer möglichst geringen Anzahl von Lesevorgängen in der Datenbank zu lesen. Um zu verhindern, daß die Konfigurationsdaten, die von den Teilnehmern in dem Prozeßsteuersystem betrachtet werden, überaltern, erfaßt der Datenbankserver automatisch Veränderungen an einem Element in der Konfigurationsdatenbank und sendet Benachrichtigungen über Veränderunge, die an dem Element vorgenommen wurden, an jeden der Abonnenten dieses Elements, so daß ein Benutzer stets den Status der Konfiguration, der aktuell in der Konfigurationsdatenbank vorliegt, betrachtet.
Description
Bei dieser Anmeldung handelt es sich um eine vorschriftsmäßig
eingereichte Anmeldung, basierend auf der vorläufigen Anmel
dung mit der Serien-Nr. 60/160,104, eingereicht am 18. Okto
ber 1999 mit dem Titel "Zugriff und Aktualisierung einer Kon
figurationsdatenbank von verteilten physischen Orten inner
halb eines Prozeßsteuersystems".
Die vorliegende Erfindung betrifft allgemein Prozeßsteuersy
steme und insbesondere ein Prozeßsteuerungskonfigurationssy
stem, das eine Konfigurationsdatenbank hat, die von geogra
phisch verteilten physischen Orten innerhalb eines Prozeß
steuersystems zugreifbar und aktualisierbar ist.
Prozeßsteuersysteme, wie sie beispielsweise in chemischen und
erdölverarbeitenden oder anderen Prozessen verwendet werden,
enthalten typischerweise mindestens eine Prozeßsteuereinrich
tung, die mit mindestens einer Hosteinrichtung oder Bedie
nungsworkstation und mit einer oder mehreren Anlageneinrich
tungen über analoge und/oder digitale Busleitungen oder ande
re Kommunikationsleitungen oder -kanäle in Kommunikationsver
bindung steht. Die Anlageneinrichtungen, bei denen es sich
beispielsweise um Ventile, Ventilpositioniereinrichtungen,
Schalter, Messwertgeber (beispielsweise Temperatur-, Druck-
und Durchflussmengensensoren) etc. handeln kann, führen Funk
tionen innerhalb des Prozesses aus, wie beispielsweise das
Öffnen oder Schließen von Ventilen und das Messen von Prozeß
parametern. Während des Ablaufs eines Prozesses empfängt die
Prozeßsteuereinrichtung Signale, welche von den Anlagenein
richtungen durchgeführte Prozeßmessungen und/oder andere In
formationen anzeigen, die sich auf die Anlageneinrichtungen
beziehen, und zwar über eine Eingabe-/Ausgabe-(I/O)-Einrich
tung, verwendet diese Informationen, um eine Steuerroutine zu
implementieren und erzeugt anschließend Steuersignale, die
über die Busleitungen oder andere Kommunikationskanäle über
die Eingabe-/Ausgabeeinrichtung zu den Anlageneinrichtungen
gesendet werden, um den Betriebsablauf des Prozesses zu re
geln. Informationen von den Anlageneinrichtungen und der
Steuereinrichtung werden typischerweise während des Ablaufes
einem oder mehreren Anwendungsprogrammen verfügbar gemacht,
welche von der Bedienungsworkstation ausgeführt werden, um
eine Bedienungsperson in die Lage zu versetzen, jede ge
wünschte Funktion hinsichtlich des Prozesses auszuführen,
beispielsweise den gegenwärtigen Status des Prozesses zu
überprüfen. Zusätzlich können Konfigurationsanwendungen, die
an einer Benutzerschnittstelle ausgeführt werden, beispiels
weise einer Hosteinrichtung, einer Workstation, einem Laptop
computer etc., verwendet werden, um den Betriebsablauf des
Prozesses zu modifizieren, den Prozeß zu konfigurieren, die
Konfiguration des Prozesses zu überprüfen, die Prozeßkonfigu
ration zu dokumentieren etc.
Allgemein werden Prozeßsteuersysteme unter Verwendung einer
Konfigurationsdatenbank konfiguriert, in der Konfigurati
onsinformationen gespeichert sind, die jedem der Hardware-
und Softwareelemente im Prozeßsteuersystem zugehörig sind,
die Art, in der die Hardwareelemente, wie beispielsweise un
terschiedliche Einrichtungen und Steuereinrichtungen in dem
Prozeß, physisch miteinander verbunden sind, und die Art und
Weise, in der verschiedene Softwareelemente, wie beispiels
weise Steuermodule, Kommunikationsmodule etc., den unter
schiedlichen Einrichtungen innerhalb des Prozeßsteuersystems
zur Durchführung der Prozeßregelung zugehörig sind und von
diesen ausgeführt werden. In einigen Fällen ist die Konfigura
tionsdatenbank eine objektorientierte Datenbank, die Konfigu
rationsobjekte oder -komponenten für jedes verschiedene logi
sche Element eines Prozeßsteuersystems als Objekte speichert.
Die Konfigurationsdatenbank kann beispielsweise eine Biblio
thek enthalten, in der Objektmustervorlagen für einen Teil
der oder die gesamten Software- und Hardwareelemente gespei
chert sind, welche Mustervorlagen verwendet werden, um Konfi
gurationsobjekte für Fälle von tatsächlich innerhalb des Pro
zeßsteuersystems verwendeten Hardware- oder Softwareelementen
zu schaffen. Diese Konfigurationsdatenbank kann ferner Setup-
oder physische Netzwerkabschnitte enthalten, welche die Art
und Weise definieren, in der die physischen Elemente eines
Prozeßsteuersystems eingerichtet, verteilt und miteinander
verbunden werden. In einigen Fällen enthält die Konfigurati
onsdatenbank ferner einen Steuerabschnitt, welcher definiert,
wie die Steuerung unter Verwendung der Steuereinrichtungen,
Anlageneinrichtungen und Steuermodule oder Steuerroutinen,
die in den Steuereinrichtungen und/oder den Anlageneinrich
tungen durchgeführt werden, ausgeführt wird. Während der Kon
figuration des Prozeßsteuersystems wird eine Konfigurations
routine bzw. -anwendung, die beispielsweise in einer Benut
zerschnittstelle oder einer Workstation ausgeführt wird, ver
wendet, um die Konfigurationsdatenbank zu erstellen oder zu
modifizieren, so daß sie die tatsächliche Konfiguration des
Prozeßsteuersystems wiedergibt. Diese Konfigurationsanwendung
verwendet typischerweise die Informationen innerhalb der Kon
figurationsdatenbank, um Einrichtungen, Steuereinrichtungen
etc. zu konfigurieren, die zu dem Prozeßsteuersystem gehören,
und speichert die neuen Konfigurationsinformationen in der
Konfigurationsdatenbank, nachdem eine Konfigurationsaktivität
ausgeführt wurde, beispielsweise wenn eine Einrichtung oder
ein Softwareelement zu dem System hinzugefügt oder verändert
wird etc.
Die Konfigurationsdatenbank wird ferner allgemein verwendet,
um die gegenwärtige Konfiguration des Prozeßsteuersystems Be
nutzern über Benutzerschnittstellen, die mit dem Prozeßsteu
ersystem verbunden sind, darzustellen. In der Vergangenheit
waren einige der Benutzerschnittstellen des Prozeßsteuersy
stems, die Konfigurationsdatenbanken und die Steuereinrich
tungen durch eine eigenständige Busleitung, wie beispielswei
se eine Ethernetbusleitung miteinander in Kommunikationsver
bindung, so daß ein lokales Netzwerk (LAN) gebildet wurde. Da
der eigenständige bzw. dezidierte Ethernetbus eine große
Bandbreite hat und da ein bestimmtes Signal oder eine Daten
abfrage, die über den Ethernetbus gesendet werden, innerhalb
des LAN nicht über sehr große Strecken laufen müssen, ist in
diesen Systemen die Kommunikation mit der Konfigurationsda
tenbank durch eine der Benutzerschnittstellen sehr direkt und
schnell. Als Resultat greifen Konfigurationsdarstellungsrou
tinen, die in den Benutzerschnittstellen ausgeführt werden,
typischerweise auf Konfigurationsinformationen in den Konfi
gurationsdatenbanken jedesmal dann zu und rufen diese ab,
wenn der Benutzer Informationen bezeichnet oder anfordert,
die zu der Konfiguration des Prozeßsteuersystems gehören.
Diese abgerufenen Informationen werden anschließend über den
Ethernetbus ausgesendet und an der Benutzerschnittstelle dem
Benutzer dargestellt. Aufgrund der Geschwindigkeit (oder ho
hen Bandbreite) des dezidierten Ethernetbusses können mehrere
Benutzer relativ gleichzeitig auf die Konfigurationsdatenbank
zugreifen und dieselben oder unterschiedliche Konfigurations
daten, die mit der Konfiguration des Prozeßsteuersystems zu
tun haben, betrachten. In ähnlicher Weise können verschiedene
Benutzer unterschiedliche Teile des Prozeßsteuersystems neu
konfigurieren, da alle neuen Konfigurationsdaten, die erzeugt
wurden, direkt in relativ kurzer Zeit über den dezidierten
Ethernetbus an die Konfigurationsdatenbank abgegeben werden
konnten. Da ferner nur diejenigen Einrichtungen, die mit dem
LAN verbunden sind, auf die Konfigurationsdatenbank Zugriff
haben, und da das LAN typischerweise auf einen einzigen Pro
zeßort beschränkt ist, besteht kein großer Bedarf, es zu er
möglichen, daß eine große Anzahl von Benutzerschnittstellen
auf die Konfigurationsdatenbank gleichzeitig zugreift.
In jüngerer Zeit nimmt jedoch allgemein die Größe einiger
Prozeßsteuersysteme zu und es besteht der Wunsch, Konfigura
tionsinformationen für Prozeßsteuernetzwerke zu integrieren,
die über größere bzw. separate geographische Gebiete ausge
dehnt oder verteilt sind. Beispielsweise wünscht ein Benutzer
die verschiedenen Prozeßstandorten zugehörigen Konfigurati
onsdaten zu kombinieren, welche in verschiedenen Bezirken,
Bundesstaaten oder sogar verschiedenen Ländern befindlich
sein können, um es so einer Bedienungsperson an einem ersten
Standort zu ermöglichen, auf Konfigurationsinformationen über
einen zweiten Standort zuzugreifen und diese zu betrachten
und möglicherweise sogar Konfigurationsaktivitäten von dem
ersten Standort aus auszuführen, die Auswirkungen auf den
zweiten Standort haben. In einem anderen Beispiel kann ein
Benutzer den Wunsch haben, eine Ölförderstelle auf einer
Bohrplattform viele Meilen vor der Küste mit einem Prozeß
steuersystem einer am Festland befindlichen Ölraffinerie zu
integrieren, welches zahlreiche Steuereinrichtungen, Benut
zerschnittstellen etc. hat. In diesem Fall ist es wünschens
wert, einen Benutzer am Standort der Ölraffinerie in die Lage
zu versetzen, die Konfiguration von Einrichtungen auf der Öl
förderplattform neu zu konfigurieren oder auf diese einzuwir
ken, ohne daß es tatsächlich erforderlich ist, zu der Platt
form zu fliegen, eine Benutzerschnittstelle an einen An
schluss auf der Ölförderplattform anzuschließen und die Öl
fördersteuereinrichtung neu zu konfigurieren, wie es typi
scherweise gegenwärtig erforderlich ist. Ferner nimmt mit der
Integration von mehreren Prozeßsteuerorten die Anzahl von Be
nutzerschnittstellen, die zum gleichzeitigen Zugriff auf die
Konfigurationsdatenbanken dieser Orte verwendet werden kön
nen, beträchtlich zu.
Bei der Integration von mehreren geographisch getrennten Or
ten ist es zwar nicht tatsächlich, jedoch praktisch unmög
lich, die verschiedenen Orte unter Verwendung eines gemeinsa
men dezidierten Busses, wie z. B. des Ethernetbusses, aufgrund
der zu überwindenden Entfernungen zu verbinden. Es ist jedoch
möglich, eine Satellitenverbindung, zelluläre Verbindung oder
andere Arten der drahtlosen Verbindung oder eine Verbindung
über ein Wide Area Network, wie beispielsweise das Internet,
oder T1-Leitungen herzustellen, um eine Kommunikationsverbin
dung zwischen den verschiedenen Orten eines Prozeßsteuersy
stems zu schaffen und dadurch die Integration von geogra
phisch getrennten Abschnitten eines Prozeßsteuernetzwerkes zu
ermöglichen. Die Nutzung von Satellitenverbindungen, zellulä
ren Verbindungen oder anderen drahtlosen Kommunikationsver
bindungen über große Distanzen ist typischerweise sehr teuer
und unterliegt allgemein gemeinsamer Nutzung, so daß nur eine
begrenzte Bandbreite im Vergleich zu einem dezidierten Bus
vorhanden ist, wie beispielsweise dem Ethernetbus. Gleicher
maßen bieten das Internet, T1-Leitungen und andere gemeinsam
genutzte Wide Area Networks nur eine begrenzte Bandbreite
bzw. einen begrenzten Durchsatz und sind daher typischerweise
für die Datenübertragung im Vergleich zu einem dezidierten
Ethernet Local Network Bus sehr langsam. Ferner tragen die
geographische Distanz zwischen den unterschiedlichen Orten
und die Notwendigkeit, eine sichere und verläßliche Kommuni
kation zwischen den Orten unter Verwendung von beispielsweise
der Bestätigung von Datenpaketen, wie in dem IP-, TCP- und
UDP-Kommunikationsprotokoll vorgesehen, zu schaffen, weiter
zu der Verzögerung der Kommunikation zwischen den Orten bei.
Als Resultat der Verzögerung der Kommunikation zwischen geo
graphisch voneinander entfernten Standorten eines Prozeßsteu
ersystems und der Zunahme der Anzahl von Benutzerschnittstel
len oder anderen Einrichtungen, die auf eine Konfigurations
datenbank zugreifen, ist es schwierig, eine Konfigurationsda
tenbank zu schaffen, in der die Daten für das gesamte Prozeß
steuersystem, einschließlich der Einrichtungen an jedem der
geographisch unterschiedlichen Standorte in einer Weise ge
speichert sind, daß sie in derselben Weise von Benutzern an
allen unterschiedlichen Standorten zugreifbar sind, sowie in
einer Weise, daß sie von Benutzern an den unterschiedlichen
Standorten unter Verwendung von gegenwärtigen Konfigurations
datenbankzugriffsvorgängen geändert werden können. Insbeson
dere wenn die Kommunikationsdatenbank an einem Hauptstandort
angeordnet ist, müssen Benutzer an einem entfernten Standort
alle Konfigurationsdaten im Rahmen einer Auffrischung über
die langsame bzw. lange Verbindung herunterladen, was eine
unangemessen lange Zeitdauer beanspruchen kann. Ferner kann
alleine die Erhöhung der Anzahl der Benutzer, die auf die
Konfigurationsdatenbank zugreifen, die Zugriffszeit auf jede
Information in der Konfigurationsdatenbank auf ein nicht ak
zeptables Niveau erhöhen. Entsprechend kann bei der Neukonfi
guration des Prozeßsteuersystems die Verzögerung der Kommuni
kation zwischen einem Hauptstandort und einem entfernten
Standort es ermöglichen, daß zwei verschiedene Benutzer ver
suchen, dieselbe Komponente des Prozeßsteuersystems neu zu
konfigurieren, was zu Verwirrung bzw. Fehlern führt. So kann
beispielsweise ein Benutzer an einem entfernten Standort die
gegenwärtige Konfiguration des Prozesses aus der Konfigurati
onsdatenbank an dem Hauptstandort anfordern und erhalten, ei
nen Teil des Prozeßsteuersystems an dem entfernten Standort
neu konfigurieren und anschließend die neuen Konfigurations
daten zu der Konfigurationsdatenbank an den Hauptstandort
senden. In der Zwischenzeit kann jedoch ein Benutzer an dem
Hauptstandort denselben Abschnitt des Prozeßsteuersystems neu
konfiguriert haben, und kann, da vergleichsweise keine Verzö
gerung bei der Kommunikation an dem Hauptstandort vorhanden
ist, diese neue Konfiguration in der Konfigurationsdatenbank
speichern, bevor der Benutzer an dem entfernten Standort ver
sucht, die an dem entfernten Standort erzeugten neuen Konfi
gurationsdaten zum Abspeichern an die Konfigurationsdatenbank
zu senden, was zu Fehlern führt.
In einigen Fällen kann es nicht möglich oder praktisch durch
führbar sein, auch nur eine langsame Kommunikationsverbindung
bzw. eine Kommunikationsverbindung mit niedriger Bandbreite
zwischen unterschiedlichen Standorten zu schaffen, und in
diesem Fall muß die Konfiguration eines entfernten Standortes
an dem entfernten Standort stattfinden und muß anschließend
in die Konfigurationsdatenbank an dem Hauptstandort geladen
werden. Diese Off-Line-Konfiguration kann jedoch Probleme
verursachen, wenn unterschiedliche Benutzer versuchen, den
entfernten Standort zur gleichen Zeit oder nahezu gleichzei
tig neu zu konfigurieren, oder wenn ein Benutzer versucht,
einen entfernten Standort neu zu konfigurieren, bevor ein an
derer Benutzer, der bereits den entfernten Standort neu kon
figuriert hat, die Konfigurationsdatenbank aktualisiert, so
daß sie die bereits an dem entfernten Standort vorgenommenen
Veränderungen wiedergibt.
Es ist Aufgabe der Erfindung, ein Verfahren und eine Vorrich
tung zum Zugriff und zur Aktualisierung einer Konfigurations
datenbank von verschiedenen physischen Orten innerhalb eines
Prozeßsteuersystems zu schaffen.
Die Lösung der Aufgabe ergibt sich aus den Patentansprüchen.
Unteransprüche beziehen sich auf bevorzugte Ausführungsformen
der Erfindung. Dabei sind auch andere Kombinationen von Merk
malen als in den Ansprüchen beansprucht möglich.
Es wird eine Verteilungs-, Zugriffs- und Änderungsstrategie
für eine Konfigurationsdatenbank geschaffen, um es zu ermög
lichen, daß zahlreiche geographisch getrennte Orte eines Pro
zeßsteuersystems, das integriert werden soll, zusammen eine
gemeinsame Konfigurationsdatenbank in einer Weise nutzen, die
es ermöglicht, daß Benutzer an jedem der verschiedenen Stand
orte die Konfigurationsdatenbank in zeitlich angemessener,
sicherer und konfliktfreier Weise sichten und ändern können,
auch wenn die unterschiedlichen Standorte des Prozeßsteuersy
stems über eine Kommunikationsverbindung mit geringer Band
breite oder über eine langsame (d. h. verzögerte) Kommunikati
onsverbindung verbunden sind oder nur mit Unterbrechungen
beispielsweise über eine moderne Verbindung in Kommunikati
onsverbindung stehen.
Gemäß einem Aspekt der Erfindung wird eine Datenbank mit ver
teilter Konfiguration geschaffen, deren Bestandteile über die
verschiedenen geographischen Abschnitte eines Prozeßsteuersy
stems in der Weise verteilt sind, daß gemeinsam genutzte Kon
figurationsdaten, d. h. Konfigurationsdaten, die zu mehr als
einem Standort gehören bzw. für mehr als einen Standort an
wendbar sind, in einer Datenbank gespeichert sind, die von
jedem anderen Standort über eine oder mehrere langsame Kommu
nikationsverbindungen bzw. Kommunikationsverbindungen mit
niedriger Bandbreite zugreifbar ist, und Daten, die nur zu
einem bestimmten Standort gehören, in einer Konfigurationsda
tenbank an diesem Standort gespeichert sind. Auf diese Weise
ist die Konfigurationsinformation, auf die an einem bestimm
ten Standort höchstwahrscheinlich zugegriffen wird (d. h. die
Konfigurationsinformation, die zu diesem Standort gehört),
über ein lokales Netzwerk zugreifbar, während Konfigurati
onsinformationen, die zu anderen Standorten gehört, über eine
langsame Kommunikationsverbindung bzw. eine Kommunikations
verbindung mit niedriger Bandbreite zugreifbar sind. Als Re
sultat müssen nur gemeinsam genutzte Kommunikationsdaten und
Daten, die auf einen anderen Standort bezogen sind, über eine
langsame Kommunikationsverbindung bzw. eine Kommunikations
verbindung mit niedriger Bandbreite gesendet werden.
Um zu verhindern, daß Konfigurationsdaten, die von Benutzern
innerhalb des Prozeßsteuersystems betrachtet werden, überal
tert bzw. nicht mehr aktuell werden, sendet das Konfigurati
onsdatenbankzugriffssystem an jeden Standort gegebenenfalls
automatisch Veränderungen, die an der Konfigurationsdatenbank
durchgeführt wurden, an jeden der Benutzer, die gegenwärtig
diese Daten betrachten, so daß der Benutzer den Status der
Konfiguration betrachtet, der tatsächlich in der Konfigurati
onsdatenbank vorliegt. In einer Ausführungsform enthält jeder
Abschnitt der Konfigurationsdatenbank eine Datenzugriffsrou
tine, die einen gemeinsam genutzten Cache verwendet, um die
Ausgabe von Konfigurationskomponenten an jeden der Benutzer
oder Teilnehmer, die gegenwärtig diese Daten betrachten, in
einer Weise zu koordinieren, welche die Anzahl der Lesevor
gänge der Konfigurationsdatenbank reduziert, was die Zu
griffsgeschwindigkeit auf Daten von der Konfigurationsdaten
bank erhöht. Dieser gemeinsam genutzte Cache kann einen Ver
riegelungsmechanismus enthalten, um das Verriegeln und Reser
vieren von Komponenten innerhalb der Konfigurationsdatenbank
zu ermöglichen. Nach Wunsch kann die Konfigurationsinformati
on, die jeder Benutzer erhalten hat, lokal gespeichert wer
den, um es zu ermöglichen, die Konfigurationsinformation auch
dann zu betrachten, wenn die Kommunikationsverbindung zu der
Konfigurationsdatenbank, in der die Hauptkopie dieser Infor
mation gespeichert ist, unterbrochen wird oder anderweitig
nicht zur Verfügung steht.
Nachfolgend wird eine Ausführungsform der Erfindung anhand
der Figuren näher erläutert.
Fig. 1 ist ein Blockdiagramm eines Prozeßsteuersystems, das
zwei geographisch getrennte Standorte hat, die über eine Sa
tellitenkommunikationsverbindung in Kommunikationsverbindung
stehen;
Fig. 2 ist eine Darstellung eines Beispiels einer Prozeß
steuersystemhierarchie, die durch eine Konfigurationsanwen
dung dargestellt ist;
Fig. 3 ist ein Blockdiagramm eines Prozeßsteuersystems, das
einen Hauptstandort und einen entfernten Standort hat, die
über eine langsame Kommunikationsverbindung verbunden sind
und die eine gemeinsame Master-Konfigurationsdatenbank ge
meinsam nutzen;
Fig. 4 ist ein Blockdiagramm eines Prozeßsteuersystems, das
einen Hauptstandort und zwei Off-Line-Standorte hat, die alle
eine gemeinsame Master-Konfigurationsdatenbank gemeinsam nut
zen;
Fig. 5 ist ein Blockdiagramm eines Prozeßsteuersystems, das
einen Steuerraum aufweist, der mit einem Anlagenstandort über
ein lokales Netzwerk verbunden ist und mit einer Benutzer
schnittstelle über eine nicht permanente Kommunikationsver
bindung verbunden ist, welche alle eine gemeinsame Master-
Konfigurationsdatenbank gemeinsam nutzen;
Fig. 6 ist ein Blockdiagramm eines verteilten Konfigurati
onsdatenbanksystems, das in einem Prozeßsteuersystem verwen
det wird, das verschiedene geographisch getrennte Abschnitte
hat, die über langsame Kommunikationsverbindungen bzw. Kommu
nikationsverbindungen mit geringer Bandbreite in Kommunikati
onsverbindung stehen;
Fig. 7 ist ein Blockdiagramm eines Client/Server-Systems ei
ner Konfigurationsdatenbank, das einen gemeinsam genutzten
Cache innerhalb eines Konfigurationsdatenbankservers nutzt,
um eine Subscriber/Publisher-Kommunikation zwischen mehreren
Clients und Konfigurationskomponenten, die in einer Konfigu
rationsdatenbank gespeichert sind, umzusetzen;
Fig. 8 ist ein Objektmodell, das in dem Client/Server-System
von Fig. 7 verwendet wird, um mehreren Clients Zugriff auf
Konfigurationskomponenten zu geben, die in der Konfigurati
onsdatenbank von Fig. 7 gespeichert sind;
Fig. 9 ist ein Blockdiagramm des Zustands der Objekte inner
halb des Datenbankservers von Fig. 7 bei Programmbeginn;
Fig. 10 ist ein Blockdiagramm, das die Operation der Objekte
in dem Datenbankserver von Fig. 7 darstellt, wenn ein erster
Client Verbindung mit dem Server aufnimmt, um auf eine erste
Konfigurationskomponente von der Konfigurationsdatenbank zu
zugreifen;
Fig. 11 ist ein Blockdiagramm, das die Operation der Objekte
innerhalb des Datenbankservers von Fig. 7 darstellt, wenn
der erste Client untergeordnete Elemente einer Komponente von
der Konfigurationsdatenbank lädt;
Fig. 12 ist ein Blockdiagramm, das die Operation der Objekte
innerhalb des Datenbankservers von Fig. 7 darstellt, wenn
ein zweiter Client eine Verbindung mit dem Datenbankserver
herstellt, um auf eine erste und eine zweite Konfigurations
komponente von der Konfigurationsdatenbank zuzugreifen, die
bereits in dem gemeinsam genutzten Cache des Datenbankservers
gespeichert sind;
Fig. 13 ist ein Blockdiagramm, das die Operation der Objekte
innerhalb des Datenbankservers von Fig. 7 ansprechend auf
eine Ereignismitteilung darstellt, die durch einen Datenbank
server-Mitteilungsthread erzeugt wurde;
Fig. 14 ist ein Blockdiagramm, das die Operation eines Ver
riegelungsmanagers in dem Datenbankserver von Fig. 7 dar
stellt, der den gleichzeitigen Zugriff auf den gemeinsam ge
nutzten Cache innerhalb des Datenbankservers vermittelt; und
Fig. 15 ist ein Blockdiagramm, das die Operation der Objekte
innerhalb des Datenbankservers von Fig. 7 ansprechend auf
eine Ereignismitteilung zeigt, die von einem Laufzeitservi
ces-Mitteilungsthread erzeugt wurde.
Wie Fig. 1 zeigt, enthält ein Prozeßsteuersystem 10 geogra
phisch voneinander getrennte Orte bzw. Standorte 12 und 14,
die durch eine Satellitenkommunikationsverbindung 16 in Kom
munikationsverbindung stehen, die durch einen Satelliten 18
gebildet ist, der einen ersten Kanal 20 mit einer Aufwärts-
/Abwärtsstrecke und einen zweiten Kanal 22 mit einer Auf
wärts-/Abwärtsstrecke hat, bei welchen es sich um Zweiwegeka
näle handeln kann. Der erste Standort 12, der hier als loka
ler oder Hauptstandort 12 bezeichnet wird, enthält zwei Pro
zeßsteuereinrichtungen 24 und 26, die mit einer Benutzer
schnittstelle 28, einer Konfigurationsdatenbank 30 und einem
Datenserver 32 über einen dezidierten lokalen Netzwerkbus 34
verbunden sind, bei dem es sich beispielsweise um eine Ether
net- oder jede andere gewünschte Bus- oder Kommunikationslei
tung handeln kann, verbunden sind. Die Benutzerschnittstelle
28 kann jeder gewünschte Typ einer Host-Workstation oder ei
nes Host-Computers sein, wie beispielsweise jede Art eines
Personalcomputers, Laptopcomputers etc., während die Konfigu
rationsdatenbank 30 eine freistehende Datenbankeinrichtung
sein kann oder in eine beliebige andere Einrichtung inte
griert sein kann, wie z. B. die Benutzerschnittstelle 28 oder
den Datenserver 32. Der Datenserver 32 enthält eine Antenne
39, mit welcher der Datenserver 32 über die langsame Kommuni
kationsverbindung 16 mit niedriger Bandbreite mit dem zweiten
Prozeßsteuerstandort 14 in Kommunikation steht, der hier als
entfernter Standort 14 bezeichnet wird.
Jede der Steuereinrichtungen 24 und 26 ist mit einer oder
mehreren Eingabe-/Ausgabeeinrichtungen 36 (I/O) verbunden,
welche wiederum mit Anlageneinrichtungen verbunden sind, bei
welchen es sich um jede gewünschte Art von Anlageneinrichtun
gen handeln kann, wie beispielsweise konventionelle 4-20
Milliampere-Einrichtungen 38 oder beliebige intelligente An
lageneinrichtungen 40, wie beispielsweise HART®-, PROFIBUS®-,
Actuator Sensor Interface- (AS-Interface), WORLDFIP®-, De
vice-Net®-, CAN-, FOUNDATIONTM- Fieldbus- (nachfolgend als
"Fieldbus" bezeichnet) Einrichtungen und dergleichen handeln
kann. Selbstverständlich können die Einrichtungen 38 und 40
jede gewünschte Art von Einrichtung darstellen, beispielswei
se Sensoren, Sender, Ventile, Gebläse, Mischeinrichtungen,
Positioniereinrichtungen etc., die jede Art von Regel-, Meß-
oder andere Funktionen innerhalb des Prozeßsteuersystems 10
ausführen können. Die Steuereinrichtungen 24 und 26 können
mit den Anlageneinrichtungen 38 und 40 unter Verwendung von
beliebigen bekannten oder gewünschten I/O-Einrichtungen 36
und Kommunikationsprotokollen kommunizieren, beispielsweise
unter Verwendung der Protokolle, die zu den jeweils vorste
hend bezeichneten Arten von Einrichtungen gehören. Allgemein
enthalten die Steuereinrichtungen 24 und 26, bei welchen es
sich beispielsweise um DeltaVTM-Steuereinrichtungen handeln
kann, die von Fisher-Rosemount Systems Inc. vertrieben wer
den, jeweils einen Prozessor und einen Speicher zum Speichern
zum Daten, Programmen und Steuerroutinen (wie z. B. Prozeß
steuermodule), die verwendet werden, um die Steuerung des
Prozesses 10 am Hauptstandort 12 umzusetzen. Allgemein ausge
drückt empfangen die Steuereinrichtungen 24 und 26 Signale
von den Anlageneinrichtungen 38 und 40, führen Prozeßsteuer
routinen aus und geben Steuer- bzw. Regelsignale an die Ein
richtungen 38 und 40 aus, um dadurch die Regelung des Prozes
ses 10 umzusetzen.
Entsprechend enthält der entfernte Standort 14 eine Prozeß
steuereinrichtung 50, die mit Benutzerschnittstellen 52 und
53, einer Konfigurationsdatenbank 54 und einem Datenserver 56
über einen dezidierten lokalen Netzwerkbus 58 verbunden ist,
bei dem es sich beispielsweise um eine Ethernet- oder jede
andere gewünschte Bus- oder Kommunikationsleitung handeln
kann. Die Steuereinrichtung 50 ist so dargestellt, daß sie
durch eine I/O-Einrichtung 60 mit zwei intelligenten Anlagen
einrichtungen 62 verbunden ist, sie könnte jedoch auch mit
jeder anderen Zahl oder Art von Anlageneinrichtungen verbun
den sein. Der Datenserver 56 benutzt eine Antenne 64 zur Kom
munikation über eine langsame bzw. mit niedriger Bandbreite
arbeitende Datenverbindung 16 mit dem Datenserver 32, um da
durch die Kommunikation zwischen dem lokalen Standort 12 und
dem entfernten Standort 14 sicherzustellen. Die Einrichtungen
in dem entfernten Standort 14 können gleich oder ähnlich den
entsprechenden Einrichtungen in dem lokalen Standort 12 sein
und Prozeßsteuerungs- und Berichtoperationen an dem entfern
ten Standort 14 durchführen. Dementsprechend versteht sich,
daß andere Einrichtungen oder andere Anzahlen von Einrichtun
gen an einem der beiden oder an beiden Standorten 12 und 14
angeschlossen sein können, um Prozeßsteuerungs- und Konfigu
rationsaktivitäten in jeder gewünschten Weise durchzuführen.
Tatsächlich könnte einer der Standorte, beispielsweise der
entfernte Standort 14, eine einzelne Einrichtung, beispiels
weise eine Benutzerschnittstelle, sein, falls dies erwünscht
ist. Der Datenserver 32 könnte direkt mit der Konfigurations
datenbank 30 verbunden sein und in ähnlicher Weise könnte der
Datenserver 56 direkt mit der Konfigurationsdatenbank 54 ver
bunden sein, anstatt daß er durch einen Ethernet-Bus verbun
den ist.
Es versteht sich, daß die Datenserver 32 und 56 so arbeiten,
daß sie eine Kommunikationsverbindung zwischen den beiden
Bussen 34 und 58 herstellen, um dadurch die Kommunikation
zwischen den Einrichtungen an dem lokalen Standort 12 und dem
entfernten Standort 14 zu ermöglichen. Während die Kommunika
tionsverbindung 16 als Satellitenverbindung dargestellt ist,
kann jede andere beliebige Kommunikationsverbindung anstelle
dessen verwendet werden, beispielsweise eine zelluläre Ver
bindung, eine Modem- oder eine Telefonleitungsverbindung, ei
ne Internetverbindung oder jede andere drahtlose oder Groß
raumnetzwerk- (WAN) bzw. gemeinsam genutzte lokale Netzwerk
verbindung (LAN). Selbstverständlich kann jede gewünschte
Kommunikationsstrategie innerhalb der Kommunikationsverbin
dung 16 verwendet werden, um die Kommunikation von Daten über
die Verbindung 16 zu bewerkstelligen. So kann jedes Kommuni
kationsprotokoll, wie beispielsweise das IP- oder TCP- oder
UDP-Protokoll verwendet werden, und jede Modulationstechnik,
Fehlercodiertechnik etc. kann verwendet werden, um die Kommu
nikation über die Verbindung 16 umzusetzen, darunter bei
spielsweise Spread-Spectrum-Techniken. Verzugsweise wird eine
Art von Datenbestätigungsplan in der Kommunikationsverbindung
16 verwendet, um eine sichere und zuverlässige Kommunikation
bei Vorhandensein von Rauschen oder anderen Störungen sicher
zustellen. Auf Wunsch kann der Datenbestätigungsplan bzw. die
Datenbestätigungstechnik, die in der US-Patentanmeldung Seri
ennummer 09/418,747 mit dem Titel "Deferred Acknowledgment
Communications and Alarm Management", eingereicht am
15.10.1999, welche auf den Rechtsinhaber der vorliegenden Er
findung übertragen wurde und die hiermit ausdrücklich durch
Bezugnahme hierin eingeschlossen wird, verwendet werden, um
die Kommunikation über die Kommunikationsverbindung 16 zu be
wirken. Allgemein ausgedrückt, ermöglicht es die Verwendung
der Kommunikationsverbindung 16, geographisch getrennte Pro
zeßsteuerstandorte oder -systeme miteinander zu integrieren,
um ein einziges Prozeßsteuernetzwerk zu bilden, in dem die
Einrichtungen innerhalb eines Standortes mit den Einrichtun
gen an dem anderen Standort kommunizieren können, um Steuer-
und Konfigurationstätigkeiten auszuführen.
Nachteilhafterweise ist die Kommunikation über die Kommunika
tionsverbindung 16 aufgrund der Distanzen zwischen den Stand
orten 12 und 14 typischerweise wesentlich langsamer als die
Kommunikation über die LAN-Busse 34 und 58. Ferner kann die
Kommunikationsverbindung 16 im Vergleich zu den dezidierten
LAN-Bussen 34 und 58 eine niedrige Bandbreite haben und ist
allgemein für Rauschen und andere Fehler empfindlicher als
die Kommunikation über die LAN-Busse 34 und 58. Diese Fakto
ren lassen allgemein die Kommunikationsverbindung 16 zur Ur
sache von Kommunikationsengpässen innerhalb des Prozeßsteuer
systems 10 werden.
Gemäß vorliegender Erfindung sind Konfigurationsdaten, die
die Art und Weise betreffen, in der das Prozeßsteuersystem 10
konfiguriert ist, in einer oder in beiden Konfigurationsda
tenbanken 30 und 54 gespeichert. Ferner können eine oder meh
rere der Benutzerschnittstellen 28, 52 und 53 oder andere
Einrichtungen eine Konfigurationsanwendung speichern und auf
Anforderung einer Bedienungsperson diese ausführen. Diese
Konfigurationsanwendung kann auf eine oder mehrere der Konfi
gurationsdatenbanken 30 und 54 zugreifen, um Konfigurati
onsinformationen zu erhalten, wie beispielsweise Informatio
nen, die die Konfiguration der Einrichtungen, der Softwaremo
dule etc. innerhalb des Prozeßsteuernetzwerkes 10 betreffen,
und kann die erhaltene Konfigurationsinformation auf einem
Bildschirm zur Betrachtung durch den Benutzer darstellen. Die
Konfigurationsanwendung kann auch einen Benutzer in die Lage
versetzen, neue Einrichtungen, Softwareelemente oder andere
Elemente zu dem System hinzuzufügen, neue Kommunikationsver
bindungen zwischen den Einrichtungen innerhalb des Systems zu
schaffen, bereits vorhandene Elemente innerhalb des Systems
zu verändern, und dergleichen, um dadurch das Prozeßsteuersy
stem 10 neu zu konfigurieren. In einem anderen Fall kann eine
Konfigurationsanwendung, die in einem ersten Datenbankserver
ausgeführt wird, beispielsweise dem Server 32, auf Informa
tionen von einem anderen Datenbankserver, beispielsweise dem
Server 54, über die langsame Verbindung 16 zugreifen, um die
se Informationen einem weiteren, anderen entfernten Standort
(in Fig. 1 nicht dargestellt) zugänglich zu machen. Selbst
verständlich kann jede gewünschte Prozeßsteuerkonfigurati
onsanwendung oder -routine verwendet werden, beispielsweise
die Konfigurationsanwendungen, die mit den von Fisher-Rose
mount Systems Inc. gelieferten DeltaV-Produkten verbunden
sind. Insbesondere die DeltaV-Konfigurationsanwendungen zei
gen Prozeßsteuerkonfigurationsinformationen in einem Windows
artigen Explorer Baumformat an und ermöglichen es einem Be
nutzer oder einer Bedienungsperson, das System durch Drag-
und Drop-Verschiebung von Elementen innerhalb des Konfigura
tionsbaumes auf andere Elemente neu zu konfigurieren, so daß
dadurch diese Elemente in unterschiedliche Einrichtungen ge
laden werden, oder die Plazierung von Prozeßsteuerelementen
in verschiedenen Bereichen eines Prozesses anzugeben, die
Verbindung von Einrichtungen mit unterschiedlichen Steuerein
richtungen, Bussen oder I/O-Einrichtungen etc. anzugeben,
oder Softwareelemente in unterschiedliche Einrichtungen zu
laden. Das US-Patent Nr. 5,838,563 für Dove et al. ("System
for Configuring a Process Control Environment"), US-Patent-
Nr. 5,828,851 für Nixon et al. ("Process Control System Using
Standard Protocol Control of Standard Devices and Nonstandard
Devices"), die US-Patentanmeldung Nr. 08/631,519 für Nixon et
al. ("Process Control System Including a Method and Apparatus
for Automatically Sensing the Connection of Devices To a Net
work"), eingereicht am 12. April 1996, und die US-Patentan
meldung Nr. 08/631,458 für Dove ("System for Assisting Confi
guring a Process Control Environment"), eingereicht am 12.
April 1996, die alle auf den Rechtsinhaber der vorliegenden
Erfindung übertragen wurden und alle ausdrücklich durch Be
zugnahme hierin eingeschlossen werden, beschreiben Prozeß
steuerkonfigurationsanwendungen, die es einem Benutzer ermög
lichen, Prozeßsteuerroutinen und Elemente graphisch zu schaf
fen, Einrichtungen innerhalb eines Prozeßsteuersystems auto
matisch zu erfassen und die Steuerung von Einrichtungen in
nerhalb eines Prozeßsteuersystems zu ermöglichen. Selbstver
ständlich könnte jede Art von Konfigurationsanwendung in der
Benutzerschnittstelle oder in einer Serverdatenbank oder ei
ner anderen Einrichtung ausgeführt werden, um auf die Konfi
gurationsdatenbanken 30 und 54 zuzugreifen, einschließlich
jeder anderen Art von graphischer Konfigurationsanwendung und
nicht graphischer Konfigurationsanwendung.
Zur Erläuterung zeigt Fig. 2 ein Beispiel eines Prozeßsteu
erkonfigurationsbaumes 65, der verwendet werden kann, um eine
Konfiguration eines Prozeßsteuersystems darzustellen, und der
verwendet werden kann, um Veränderungen an der Konfiguration
eines Prozeßsteuersystems graphisch festzulegen. Allgemein
ausgedrückt stellt der Konfigurationsbaum 65 aus Fig. 2 In
formationen dar, die zu der Konfiguration einer Betriebsanla
ge namens Tracey Island gehören. Das Konfigurationssystem von
Tracey Island (in dem Baum 65 mit "traceyisland" bezeichnet)
enthält einen Bibliotheksabschnitt 66, der beispielsweise
Vorlagen für unterschiedliche Einrichtungskonfigurationen,
Einrichtungsdefinitionen, Softwareelemente, wie beispielswei
se Steuermodule etc. oder andere Objekte, die in der Anlage
Tracey Island verwendet werden, enthalten kann. Obgleich die
se Vorlagen nicht in dem Baum 65 dargestellt sind, könnten
sie durch Auswählen des Bibliothekssymbols 66 (beispielsweise
durch Doppelklicken) dargestellt werden. Der Konfigurations
baum 65 kann ferner einen Systemkonfigurationsabschnitt 67
aufweisen, der die Art und Weise darstellt, in der die Ein
richtungen, wie z. B. Steuereinrichtungen, I/O-Einrichtungen,
Anlageneinrichtungen, Benutzerschnittstellen etc. innerhalb
des Prozesses physisch angeordnet sind. Die dargestellte Sy
stemkonfiguration für die Betriebsanlage Tracey Island hat
Rezepte (welche in der Betriebsanlage beispielsweise zur Her
stellung unterschiedlicher Produkte durchzuführende Arbeits
abläufe definieren), Einrichtungsinformationen und Steuer
strategien. Wie dargestellt, hat das Symbol bzw. die Kompo
nente für Steuerstrategien eine Anzahl von untergeordneten
Komponenten, darunter nicht zugewiesene I/O-Referenzen, Gerä
te, und zwei Bereiche (bei denen es sich um physische Berei
che handelt) namens Area_A und Areal. Area_A enthält eine un
tergeordnete Komponente Module1, die zeigt, daß das Steuermo
dul Module1 in dem Area_A-Teil der Betriebsanlage Tracey Is
land geladen ist. Die Systemkonfiguration enthält ferner ein
physisches Netzwerk, das eine Liste von außer Betrieb ge
stellten Steuereinrichtungen hat, sowie ein Steuernetzwerk
symbol. Das Steuernetzwerksymbol bzw. die entsprechende Kom
ponente hat einen oder mehrere in Betrieb gestellte Steuer
einrichtungen (nur die Steuereinrichtung CTLR1 ist darge
stellt) sowie eine Benutzerschnittstelle (mit der Bezeichnung
Governmint), die der Operation der Steuereinrichtung CTRL1
zugeordnet ist. Jede Steuereinrichtung kann eine oder mehrere
I/O-Einrichtungen haben, die an dieser angebracht sind, und
jede I/O-Einrichtung kann mit einer oder mehreren Anlagenein
richtungen verbunden sein, so daß diese mit den Steuerein
richtungen innerhalb des Baumes 65 in Kommunikationsverbin
dung sind. Diese Komponenten sind jedoch in Fig. 2 nicht
dargestellt, könnten jedoch dargestellt werden, wenn bei
spielsweise das Symbol CTRL1 von einem Benutzer ausgewählt
würde.
Es ist zu erkennen, daß die Konfigurationskomponenten, die in
Fig. 2 dargestellt sind, Parent/Child-Beziehungen haben, wo
bei beispielsweise die Systemkonfiguration 67 direkt nachfol
gende bzw. untergeordnete Elemente, nämlich Rezepte, Setup,
Steuerstrategien und physisches Netzwerk, hat. Entsprechend
sind die Steuerstrategien ein übergeordnetes Element bzw. ein
Parent von nicht zugewiesenen I/O-Referenzen, Geräten, Area_A
und Areal. Area_A ist ein Parent der Modul 1-Komponente.
Selbstverständlich kann jede der untergeordneten Komponenten
weitere untergeordnete Komponenten und so fort haben, so daß
der Benutzer jede Ebene des Konfigurationsbaumes 65 betrach
ten kann, um zu sehen, welche Objekte in welchen Einrichtun
gen gespeichert sind, welche Einrichtungen in welchen physi
schen Zonen angeordnet sind, und wie die unterschiedlichen
Einrichtungen miteinander in Kommunikationsverbindungen ste
hen. Allgemein zeigt die Hierarchie von Fig. 2 die Anwesen
heit von nicht dargestellten untergeordneten Komponenten da
durch an, daß ein Plussymbol (+) neben der übergeordneten
bzw. Parent-Komponente plaziert wird. Auch Informationen über
eine ausgewählte Komponente einschließlich deren untergeord
neter Komponenten können auf der rechten Seite des Bildschir
mes dargestellt werden, wie bei der Steuerstrategiekomponente
von Fig. 2 dargestellt. Selbstverständlich kann weitere In
formation über diese Komponenten durch Auswählen dieser Kom
ponenten in der Hierarchie von Fig. 2 erhalten werden.
Während Fig. 2 eine Beispielskonfigurationshierarchie dar
stellt, versteht es sich, daß die Konfigurationshierarchie
für ein Prozeßsteuernetzwerk andere Einrichtungen und Module
darstellen kann und andere Abhängigkeiten annehmen kann. Auch
kann ein Prozeß in eine Anzahl von physischen Standorten
und/oder Zonen unterteilt werden, und jeder dieser Standorte
oder jede dieser Zonen kann Steuereinrichtungen, Benutzer
schnittstellen etc. haben, die zu dieser gehören, was in der
Hierarchie darstellbar ist. Selbstverständlich kann ein Be
nutzer anfänglich einen Teil des Baumes 65 aus Fig. 2 be
trachten und anschließend ein Element innerhalb des Baumes 65
auswählen, wie etwa Area_A, um den weiteren Verzweigungen des
Konfigurationsbaumes 65 zu folgen. Diese Auswahl veranlaßt,
daß die Konfigurationanwendung, die den Hierarchiebaum 65 be
reitstellt, auf die untergeordneten Elemente des ausgewählten
Objektes zugreift und diese untergeordneten Elemente auf dem
Anzeigebildschirm darstellt. In einigen Fällen kann die Kon
figurationsinformation als Objekte in einer objektorientier
ten Datenbank gespeichert werden und die Objekte innerhalb
der Datenbank können dieselben Beziehungen wie die in dem
Konfigurationsbaum, der von der Konfigurationsanwendung dar
gestellt wird, gezeigten haben.
Es versteht sich, daß die Konfigurationsobjekte oder
-komponenten, die in dem Hierarchiebaum 65 von Fig. 2 darge
stellt sind, in den Konfigurationsdatenbanken 30 und 54 in
Fig. 1 gespeichert und in diesen zugreifbar sein können. Die
in den Konfigurationsdatenbanken 30 und 54, bei welchen es
sich beispielsweise um objektorientierte Datenbanken jeden
gewünschten Typs handeln kann, gespeicherte Information kann
in jeder gewünschten Weise gespeichert sein und Beziehungen
haben, die den in Fig. 2 gezeigten Beziehungen gleich sind
oder mit diesen verwandt sind.
Prozeßsteuernetzwerke nach dem Stand der Technik haben typi
scherweise keine getrennten Standorte, wie etwa Standorte,
die über eine langsame oder Langstrecken-Kommunikationsver
bindung verbunden sind. Demgemäß enthält jedes Prozeßsteuer
system typischerweise seine eigene Konfigurationsdatenbank,
die Konfigurationsdaten hat, die nur die Konfiguration der
Einrichtungen innerhalb dieses Systems betreffen. Ferner ist
diese Konfigurationsdatenbank typischerweise durch alle Be
nutzerschnittstellen oder andere Einrichtungen, die mit dem
LAN des Prozeßsteuersystems verbunden sind, zugreifbar und
kann sehr rasch aufgrund der hohen Bandbreite des LAN-Busses
und der relativ geringen Distanz zwischen der Benutzer
schnittstelle und der Konfigurationsdatenbank innerhalb des
LAN zugegriffen werden. Somit würde beispielsweise bei Syste
men nach dem Stand der Technik jeder der Standorte 12 und 14
seine eigene Konfigurationsdatenbank enthalten, die Informa
tionen speichern, welche nur die Einrichtungen innerhalb ei
nes der Standorte, d. h. dem Standort 12 oder dem Standort 14,
jedoch nicht beide betreffen. In diesen Fällen würde zwar die
Kommunikationsverbindung 16 zwischen den Standorten 12 und 14
vorgesehen und damit die Kommunikation zwischen diesen Stand
orten ermöglicht, aber die Konfigurationsdatenbank für einen
Standort würde trotzdem nicht die Konfiguration von Einrich
tungen innerhalb des anderen Standortes wiedergeben und es
gibt keine Möglichkeit, daß eine Konfigurationsanwendung Kon
figurationskomponenten, die in getrennten Konfigurationsda
tenbanken gespeichert sind, in einer Signalkonfigurations
hierarchie oder einem entsprechenden Baum, wie etwa in Fig.
2 gezeigt, integriert.
Ferner greifen Konfigurationsanwendungen nach dem Stand der
Technik typischerweise jedes Mal dann auf die Konfigurations
datenbank zu, um die vom Benutzer angeforderte Information zu
erhalten, wenn der Benutzer eine tiefergehende Operation oder
eine andere Anfrage nach weitergehender Information in der
Konfigurationshierachie durchführt. Unglückliderweise sind
die tatsächlichen Datenauslesevorgänge aus der Konfigurati
onsdatenbank der langsamste Teil des Datenabfrageprozesses
und somit würden bei einer großen Anzahl von Benutzern, die
jeweils die Konfigurationshierarchie betrachten, die Lesevor
gänge in der bzw. aus der Konfigurationsdatenbank eine uner
wünschte Verzögerung der Möglichkeit, diese Information aus
einer einzelnen Datenbank abzurufen, verursachen. Diese Tat
sache wird verstärkt, wenn mehrere Benutzer zu dem System
über ein oder mehrere entfernte Kommunikationsverbindungen
hinzugefügt werden, was die Anzahl der Benutzer erhöht, die
in der Lage sind, auf die Konfigurationsdatenbank zuzugrei
fen. Entsprechend können die Datenabrufvorgänge für diese
entfernt angeordneten Benutzer durch die Engstelle der Kommu
nikation, die die Fernverbindung darstellt, wie etwa die Kom
munikationsverbindung 16 in Fig. 1, weiter verzögert werden.
Die Datenbank 30 und 54 und die Kommunikation innerhalb des
Prozeßsteuersystems 10 können in einer Vielzahl von Arten
strukturiert sein, um Konfigurationsinformationen über das
Prozeßsteuersystem 10 an zahlreiche Konfigurationsanwendungen
entweder nur an dem lokalen Standort 12 oder dem entfernten
Standort 14 oder an beiden Standorten abzugeben, jedoch in
einer Weise, die das Ausmaß der Kommunikation über die Fern
verbindung 16 reduziert, die eine integrierte Ansicht des ge
samten oder nur eines Teiles des Prozeßsteuersystems 10 er
gibt und die es erlaubt, daß die Konfigurationsinformation
von jedem Ort innerhalb eines Prozeßsteuersystems 10 geändert
wird. In einem ersten Fall ist eine der Konfigurationsdaten
banken, beispielsweise die Konfigurationsdatenbank in Fig.
1, als eine Master-Konfigurationsdatenbank bezeichnet, welche
das Masterexemplar aller Konfigurationsgegenstände oder Kom
ponenten darin speichert. Die andere Konfigurationsdatenbank
54 wird hierin als eine Aktenkoffer-Datenbank bezeichnet, die
auf einen Teil der oder die gesamte Information innerhalb der
Master-Konfigurationsdatenbank 30 auf einer Bedarfsbasis zu
greift, diese Daten über die Kommunikationsverbindung 16 her
unterlädt und Benutzerschnittstellen oder andere Einrichtun
gen an dem entfernten Standort 14 in die Lage versetzt, diese
Daten zu betrachten und zu verändern. Veränderte Daten können
über die Kommunikationsverbindung 16 in die Master-Konfigura
tionsdatenbank 30 hochgeladen werden, um sicherzustellen, daß
andere Benutzer über die Master-Konfigurationsdatenbank Zu
griff auf die veränderten Daten haben. In diesem Fall werden
Aufrufe von einzelnen Benutzerschnittstellen an die Master-
Konfigurationsdatenbank 30 über die langsame bzw. mit gerin
ger Bandbreite arbeitende Kommunikationsverbindung 16 redu
ziert, da alle benötigten Konfigurationsdaten in die Akten
koffer-Datenbank 54 heruntergeladen werden können und von
dieser Datenbank 54 an dem entfernten Standort 14 zugreifbar
sind. Ferner ist der Prozeß des Herunterladens einer großen
Anzahl von Konfigurationskomponenten in die Aktenkoffer-Da
tenbank 52 auf einmal hinsichtlich der Nutzung der Kommunika
tionsverbindung 16 effizienter als der Versuch, diese Infor
mation stückweise herunterzuladen.
In einem anderen Fall kann die Konfigurationsdatenbank 54 ei
ne Spiegeldatenbank sein, die den Status der Master-Konfigu
rationsdatenbank 30 widerspiegelt. Bei der Erstellung kopiert
die Spiegeldatenbank 54 alle Daten von der Master-Konfigura
tionsdatenbank 30, so daß sie den Status der Datenbank 30 wi
derspiegelt. Gemäß dieser Strategie greift eine Routine bei
spielsweise innerhalb der Spiegeldatenbank 54 periodisch auf
die Master-Konfigurationsdatenbank 30 über die langsame Kom
munikationsverbindung 16 zu und führt eine Synchronisierung
mit der Master-Konfigurationsdatenbank 30 durch, indem Verän
derungen, die in der Spiegelkonfigurationsdatenbank 54 er
folgt sind, der Master-Konfigurationsdatenbank 30 zur Verfü
gung gestellt werden, und Veränderungen, die an der Master-
Konfigurationsdatenbank 30 durchgeführt wurden, in die Spie
gelkonfigurationsdatenbank 54 kopiert werden. Hier greifen
die Benutzer an dem Hauptstandort 12 auf die Master-Konfigu
rationsdatenbank 30 zu, während die Benutzer an dem entfern
ten Standort 14 auf die Spiegelkonfigurationsdatenbank 54 zu
greifen, was die Anzahl der Datenaufrufe, die von einzelnen
Benutzern über die langsame Verbindung 16 erfolgen, reduziert
bzw. eliminiert.
In einem weiteren Fall sind unterschiedliche Abschnitte der
Konfigurationsdaten in den Konfigurationsdatenbanken 30 und
54 gespeichert, so daß eine verteilte Konfigurationsdatenbank
geschaffen wird. Eine Konfigurationsanwendung, die in einer
Benutzerschnittstelle oder einer anderen Einrichtung ausge
führt wird, greift auf die Konfigurationskomponenten zu, die
der Benutzer betrachten oder behandeln möchte, und zwar aus
der Datenbank, in der diese Daten ursprünglich gespeichert
sind, und abonniert Veränderungen an diesen Komponenten. In
einer Ausführungsform werden Abonnentenverbindungen oder
-threads zwischen jedem Nutzer oder Client und jeder der Da
tenbanken, auf die der Benutzer oder Client zugreift, um Kon
figurationsdaten abzurufen, geschaffen. Für Konfigurationsda
ten, die in der Konfigurationsdatenbank 54 gespeichert sind
und die von der Benutzerschnittstelle 53 abonniert sind (bei
de befinden sich an dem entfernten Standort 14), erfordert
der Thread keine Kommunikation über die Kommunikationsverbin
dung 16. Bei Daten, die in der Konfigurationsdatenbank 30 ge
speichert sind und von der Benutzerschnittstelle 53 abonniert
sind (die an unterschiedlichen Standorten angeordnet sind),
erfordert der Thread Kommunikation über die Kommunikations
verbindung 16. Als Resultat tat es wünschenswert, jedes Stück
der Konfigurationsdaten in einer Konfigurationsdatenbank zu
speichern, die an dem Standort oder an einer anderen Position
angeordnet ist, von der aus auf die Daten am wahrscheinlich
sten zugegriffen wird. Die Einzelheiten dieses Schemas werden
weiter unten im Detail erläutert.
Die hierin beschriebenen Techniken schaffen einen Weg, daß
ein Benutzer Konfigurationsveränderungen an einem entfernten
System über eine langsame oder lange Kommunikationsverbindung
in Anwesenheit von starkem Rauschen durchführt, was eine
Vielzahl von wiederholten Versuchen verursachen kann. Diese
Techniken schaffen auch einen Mechanismus, daß Benutzer Teile
eines Prozeßsteuersystems konfigurieren können, die von dem
Hauptnetzwerk getrennt sind, oder mehrere Prozeßsteuersysteme
von derselben Konfigurationseinrichtung aus konfigurieren
können. Diese Techniken ermöglichen es auch mehreren Benut
zern, an der Konfiguration von verschiedenen Teilen eines Sy
stems aus der Ferne zu arbeiten, was insgesamt die simultane
Bearbeitung bei der Entwicklung eines Prozeßsteuersystems
verbessern kann.
Das Konzept einer Aktenkoffer-Datenbank zur Verwendung in ei
nem Prozeßsteuersystem wird nachfolgend unter Bezug auf Fig.
3 bis 5 beschrieben. Allgemein ausgedrückt ist das Prozeß
steuersystem, das diesen Aufbau verwendet, so konstruiert,
daß es eine Master-Konfigurationsdatenbank hat, in der alle
Konfigurationsdaten für alle Standorte eines Prozeßsteuersy
stems gespeichert sind, einschließlich eines Hauptstandortes
und verschiedener entfernter Standorte. Der Hauptstandort und
die entfernten Standorte können über eine langsame oder mit
niedriger Bandbreite arbeitende Kommunikationsverbindung, wie
etwa eine Satellitenverbindung oder eine zelluläre Verbin
dung, in Kommunikationsverbindung stehen, können über ein Mo
dem oder eine Telefonleitungsverbindung mit Unterbrechungen
verbunden sein, oder können gar nicht verbunden sein, sondern
zum Übertragen von Konfigurationsdaten von einem Standort zum
anderen auf einen tragbaren Computer oder eine andere tragba
re Speichereinrichtung zurückgreifen. Typischerweise enthält
der Hauptstandort die Master-Konfigurationsdatenbank, während
jeder entfernte Standort oder ein Laptop oder anderer Compu
ter, der den Hauptstandort mit dem entfernten Standort ver
bindet, eine Aktenkoffer-Datenbank enthält, die eine Kopie
eines Teiles oder der gesamten Konfigurationsdaten in der Ma
ster-Konfigurationsdatenbank speichert, die an dem entfernten
Standort zu verwenden sind.
Die Aktenkofferkonfigurationsdatenbank wird von der Master-
Konfigurationsdatenbank durch einen Benutzer durch eine Her
unterlade- und Reservierungsoperation initialisiert. Bei ei
ner Herunterladeoperation kopiert oder erhält die Aktenkof
fer-Datenbank heruntergeladene Daten der Abschnitte der Kon
figurationsdaten innerhalb der Master-Konfigurationsdaten
bank, die erforderlich sind, um an einem entfernten Standort
zu arbeiten, diesen neu zu strukturieren, zu verändern, zu
verbessern, fehlerfrei zu machen etc. Die Herunterladeopera
tion kann automatisch die gesamte Konfigurationsinformation
herunterladen, die von einem Benutzer benötigt wird, um eine
gewünschte Operation an dem entfernten Standort durchzufüh
ren, um den Status des entfernten Standorts zu betrachten
etc. Eine Liste aller Konfigurationskomponenten, die für jede
Operation erforderlich sind, kann geschaffen werden und ge
speichert und benutzt werden, um das Herunterladen durchzu
führen. Alternativ kann ein Benutzer die Möglichkeit haben,
wichtige Konfigurationsobjekte auszuwählen, die für die Akti
vitäten an dem entfernten Standort benötigt werden, und eini
ge oder alle untergeordneten Elemente und/oder übergeordneten
Elemente dieser ausgewählten Komponenten können automatisch
in die Aktenkoffer-Datenbank heruntergeladen werden. Falls
erwünscht, kann jedoch der Benutzer die herunterzuladenden
Komponenten auswählen.
Eine Reservierungsoperation wird verwendet, um zu verhindern,
daß Konfigurationsdaten innerhalb der Master-Konfigurations
datenbank geändert werden, während diese Daten von der Akten
koffer-Datenbank verwendet werden. Nur Elemente, die inner
halb der Master-Konfigurationsdatenbank durch eine Aktenkof
fer-Datenbank reserviert wurden, können an dem entfernten
Standort geändert werden. Um ein Element zu reservieren, kann
eine Konfigurationsanwendung eine Reservierungsmitteilung an
die Master-Konfigurationsdatenbank senden, die anschließend
dieses Element in der Master-Konfigurationsdatenbank als re
serviert markiert und verhindert, daß andere Benutzer Verän
derungen an dem Element innerhalb der Master-Konfigurations
datenbank vornehmen. Das Element kann optional verriegelt
werden, wenn es reserviert ist, um Lesevorgänge dieses Ele
ments zu verhindern. Ein derartiger verriegelter Zustand ver
hindert, daß andere dieses Element editieren oder reservie
ren. Selbstverständlich können die Herunterlade- und Reser
vierungsoperation über eine langsame Verbindung, eine Verbin
dung mit niedriger Bandbreite oder eine nicht permanente Ver
bindung nach Wunsch durchgeführt werden. Da alle Konfigurati
onsdaten zusammen gleichzeitig heruntergeladen werden, ist
ein derartiges Herunterladen jedoch effizienter als das Über
tragen von Kopien der Daten von der Master-Konfigurationsda
tenbank über eine langsame oder mit niedriger Bandbreite ar
beitende Verbindung auf einzelner Basis nach Bedarf.
Nach dem Herunterladen und Reservieren der Konfigurationsele
mente wird die Aktenkoffer-Datenbank zu dem entfernten Stand
ort gebracht (sofern die Aktenkoffer-Datenbank nicht bereits
an dem entfernten Standort ist) und durch eine Konfigurati
onsanwendung an dem entfernten Standort benutzt, um Konfigu
rationsaktivitäten auszuführen. Da die Aktenkoffer-Datenbank
mit der gesamten Konfigurationsinformation versehen ist, die
erforderlich ist, um eine bestimmte Operation durchzuführen,
kann die Aktenkoffer-Datenbank direkt an dem entfernten
Standort verwendet werden oder kann verwendet werden, um eine
lokale Datenbank an dem entfernten Standort zu schaffen, und
diese lokale Datenbank kann von jeder Konfigurationsanwendung
genutzt werden, die an dem entfernten Standort ausgeführt
wird.
Typischerweise können Konfigurationsanwendungen, die die Ak
tenkoffer-Datenbank verwenden, nur Elemente editieren, die
von der Master-Konfigurationsdatenbank durch diese Aktenkof
fer-Datenbank reserviert wurden. Wenn beispielsweise ein Be
nutzer ein Modul mit einer damit verbundenen zusammengesetz
ten Datenstruktur reserviert hat, überträgt die Master-Kon
figurationsdatenbank das Modul plus alle abhängigen Elemente
oder untergeordneten Elemente dieses Moduls in die Aktenkof
fer-Datenbank und reserviert nur das Modul. Selbstverständ
lich können die damit verbundenen zusammengesetzten Daten
strukturen in derselben Weise wie das Modul reserviert wer
den. Wenn ein Benutzer Herunterladefähigkeit benötigt, er
laubt das System den Benutzern, Herunterladerechte an be
stimmten Knoten zu reservieren und Konfigurationsinformatio
nen, einschließlich Herunterladeberichten und Statusinforma
tionen für diese Knoten, mit der Aktenkoffer-Datenbank auszu
tauschen. Auf Wunsch kann die Konfigurationsanwendung, welche
die Aktenkoffer-Datenbank verwendet, in der Aktenkoffer-Da
tenbank gespeicherte Konfigurationsdaten in einer Weise dar
stellen, welche diejenigen Elemente deutlich bezeichnet, wel
che der Benutzer editieren kann. Beispielsweise können edi
tierbare Elemente in dem Konfigurationshierarchiebaum in
durchgehender Schrift gekennzeichnet sein, und alle Elemente,
die der Benutzer nicht verändern kann, können als grau schat
tiert dargestellt werden. Selbstverständlich können auch an
dere Arten der Darstellung verwendet werden, welche Elemente
oder Komponenten reserviert wurden. Wie vorstehend angeführt,
sind Master-Konfigurationsdatenbankelemente, die reserviert
wurden, in der Master-Konfigurationsdatenbank verriegelt, so
daß keine Änderungen an diesen vorgenommen werden können, ab
gesehen von einer Überführungsoperation (nachfolgend be
schrieben), die von der Aktenkoffer-Datenbank erzeugt wird,
welche diese Elemente reserviert hat. Nachdem der Benutzer
Veränderungen an den reservierten Elementen innerhalb der Ak
tenkoffer-Datenbank vorgenommen hat, kann die Aktenkoffer-
Datenbank mit der Master-Konfigurationsdatenbank durch eine
Überführungsoperation synchronisiert werden, bei der an re
servierten Konfigurationskomponenten durchgeführte Verände
rungen in die Master-Konfigurationsdatenbank zurück überführt
werden. Im einzelnen überführt eine Überführungsoperation
Konfigurationselemente, die von der Master-Konfigurationsda
tenbank reserviert wurden, zurück in die Master-Konfigura
tionsdatenbank, wo diese Veränderungen wiedergegeben werden
oder in der Master-Konfigurationsdatenbank gespeichert wer
den. Eine derartige Operation kann nach Wunsch die Reservie
rung der Elemente innerhalb der Master-Konfigurationsdaten
bank aufheben. Eine Konfigurationsanwendung kann eine Über
führungsmitteilung an die Master-Konfigurationsdatenbank zu
sammen mit den Werten oder den Veränderungen der Elemente,
die überführt werden, auf einmal senden, um die Belastung der
langsamen Kommunikationsverbindung zu reduzieren. Selbstver
ständlich können die Operationen des Reservierens und Über
führens an einzelnen Elementen von Konfigurationsdaten durch
geführt werden, wie beispielsweise an Bibliothekselementen,
Modulen, Knoten, Karten etc., oder können an gesamten Ab
schnitten eines Baumes durchgeführt werden, wie etwa an einem
übergeordneten Element und allen dazugehörigen untergeordne
ten und weiter untergeordneten Elementen.
Auf Wunsch kann eine Konfigurationsanwendung eine gesamte Ak
tenkoffer-Datenbank mit der Master-Konfigurationsdatenbank
synchronisieren, indem beispielsweise die reservierten Ele
mente von der Aktenkoffer-Datenbank exportiert werden, die
Exportdatei komprimiert wird und die komprimierte Exportdatei
an den Knoten, auf dem sich die Master-Datenbank befindet,
übertragen wird (das heißt über die langsame bzw. mit niedri
ger Bandbreite arbeitende Kommunikationsverbindung). An der
Master-Datenbank kann eine Anwendung die Exportdatei dekom
primieren, diese Datei in die Master-Datenbank in jeder be
kannten oder gewünschten Weise importieren, die aktuelle
Struktur der Master-Datenbank in das in der Master-Datenbank
verwendete Text- oder Datenformat extrahieren, die Exportda
tei komprimieren und die komprimierte Exportdatei zurück zu
dem Knoten übertragen, der die Aktenkoffer-Datenbank hat. Die
Anwendung in der Aktenkoffer-Datenbank dekomprimiert an
schließend die Exportdatei und importiert diese dekomprimier
te Datei zurück in die Aktenkoffer-Datenbank. Dieser Prozeß
stellt sicher, daß alle Elemente innerhalb der Master-Konfi
gurat 99999 00070 552 001000280000000200012000285919988800040 0002010049569 00004 99880ionsdatenbank und der Aktenkofferkonfigurationsdatenbank
gleich sind.
In Fig. 3 ist ein Prozeßsteuersystem 100, das wie vorstehend
beschrieben eine Aktenkoffer-Datenbank für Konfigurationsak
tivitäten nutzt, dargestellt. Das Prozeßsteuersystem 100 ent
hält einen Hauptstandort 101 mit Benutzerschnittstellen 102
und 104, die mit einer Steuereinrichtung 106 verbunden sind,
welche Steueraktivitäten ausführt. Die Benutzerschnittstellen
102 und 104 sind ferner mit einem Laufzeitdatenserver 108 und
einem Konfigurationsdatenbankserver 110 verbunden, die mit
einem entfernten Standort 111 über eine langsame Kommunikati
onsverbindung, wie z. B. eine Satellitenverbindung, eine Mo
demverbindung, eine zelluläre Verbindung etc. in Kommunikati
on stehen. Der Hauptstandort 101 enthält ferner eine Master-
Konfigurationsdatenbank 112, auf die der Datenbankserver 110
zugreifen kann. In ähnlicher Weise enthält der entfernte
Standort 111 Benutzerschnittstellen 114 und 116, die mit ei
nem Laufzeitserver 118 und mit einem Konfigurationsdatenbank
server 120 verbunden sind, die mit dem Hauptstandort 101 über
die langsame Verbindung in Kommunikation sind. Der entfernte
Standort 111 enthält ferne eine Aktenkoffer-Konfigura
tionsdatenbank 122. Die Aktenkoffer-Konfigurationsdatenbank
122 kann als eine lokale Datenbank für den entfernten Stand
ort 111 verwendet werden und kann Konfigurationsinformationen
über die langsame Verbindung von der Master-Konfigurations
datenbank 112 an dem Hauptstandort 101 erhalten.
Unter Verwendung einer Konfigurationsanwendung, die Browsing-,
Reservierungs- und Synchronisierungsoperationen im Fernbe
trieb von einer der Benutzerschnittstellen 114 und 116 bie
tet, kann ein Techniker Konfigurationsinformationen von der
Master-Konfigurationsdatenbank 112 in die Aktenkoffer-Daten
bank 122 herunterladen. Als Teil dieses Vorganges kann dem
Benutzer Gelegenheit gegeben werden, die Master-Datenbank 112
zu kopieren, die Baumstruktur für die Master-Datenbank 112 zu
kopieren, oder die lokale bzw. Aktenkoffer-Datenbank ohne Ko
pieren einer Struktur von der Master-Datenbank zu erstellen.
Zu dieser Zeit kann der Benutzer an dem entfernten Standort
111 auch innerhalb der Master-Konfigurationsdatenbank 112 ei
nen Teil oder die gesamte heruntergeladene Information reser
vieren, um es zu ermöglichen, daß Veränderungen an dieser In
formation vorgenommen werden und andere daran gehindert wer
den, zu versuchen, diese Information innerhalb der Master-
Konfigurationsdatenbank 112 zu ändern. Vorzugsweise ergibt
die Herunterladeoperation alle erforderlichen Konfigurati
onsinformationen auf einmal über die langsame Kommunikations
verbindung, was effizienter ist, als diese Daten stückweise
über die langsame Verbindung zu erhalten.
Anschließend kann der Benutzer den entfernten Standort 111
oder Elemente desselben unter Verwendung einer Konfigurati
onsanwendung und der Aktenkoffer-Datenbank 122 an dem ent
fernten Standort konfigurieren. Auf Wunsch könnte der Benut
zer anstelle dessen auch Abschnitte des Hauptstandortes 101
von dem entfernten Standort 111 konfigurieren. Dabei kann die
Konfigurationsanwendung, die beispielsweise in der Benutzer
schnittstelle 116 ausgeführt wird, auf die Aktenkoffer-Daten
bank 122 zugreifen und die Abschnitte der Konfigurationshier
archie oder des Baumes, die in der Aktenkoffer-Datenbank 122
gespeichert sind, anzeigen oder anderweitig nutzen. Wenn der
Benutzer die Struktur in der Master-Datenbank 112 sehen möch
te, kann der Benutzer eine Synchronisierungsoperation ablau
fen lassen, die die Master-Datenbank über die langsame Ver
bindung nach den gesamten darin enthaltenen Informationen,
der Baumstruktur oder nach jedem anderen gewünschten Ab
schnitt der Konfigurationsinformationen innerhalb der Master-
Datenbank 112 abfragt und die Aktenkoffer-Datenbank 122 mit
diesen Informationen aktualisiert. Wenn die Konfigurationsak
tivitäten an reservierten Elementen beendet sind, kann der
Benutzer die an dem bzw. den reservierten Elementen durchge
führten Veränderungen über die langsame Verbindung zurück an
die Master-Datenbank 112 übertragen, um zu veranlassen, daß
die Änderungen in der Master-Konfigurationsdatenbank 112 ge
speichert werden.
Wie Fig. 4 zeigt, können eine oder mehrere Aktenkoffer-
Datenbanken verwendet werden, um Konfigurationsaktivitäten
von nicht verbundenen Workstations auszuführen. Insbesondere
zeigt Fig. 4 ein Prozeßsteuersystem 130, das einen Haupt
standort 131 enthält, zu dem eine Master-Konfigurationsdaten
bank 132, ein Konfigurationsdatenbankserver 133 und eine Be
nutzerschnittstelle 134 gehören. Entfernte Standorte 135 und
136 enthalten in ähnlicher Weise jeweils einen Datenbankser
ver 138, eine oder mehrere Benutzerschnittstellen oder Work
stations 140, die Konfigurationsanwendungen ausführen können,
und eine oder mehrere Aktenkoffer-Konfigurationsdatenbanken
142, die verwendet werden können, um Konfigurationsaktivitä
ten an jedem der Elemente in der Master-Konfigurationsdaten
bank 132 auszuführen. Falls erwünscht, kann die Aktenkoffer-
Datenbank 142 innerhalb einer der Benutzerschnittstellenein
richtungen 140 sein. Ähnlich wie bei dem System von Fig. 3
können Benutzer an den Workstations 140 eine Konfigurati
onsanwendung benutzen, die beispielsweise in einer der
Schnittstellen 140 ausgeführt wird, um Verbindung mit der Ma
ster-Datenbank 132 aufzunehmen, Konfigurationsinformationen
von dieser herunterzuladen und innerhalb der Master-Konfigu
rationsdatenbank 132 alle Elemente zu reservieren, die verän
dert werden sollen. Ein derartiges Herunterladen kann über
eine langsame Verbindung oder über eine nicht kontinuierliche
Verbindung, wie beispielsweise eine Wählverbindung, oder über
eine tragbare entfernbare physische Verbindung, wie z. B. ei
nem Laptopcomputer durchgeführt werden. In jedem Fall laden
die unterschiedlichen Standorte 135 und 136 einen Teil oder
die gesamte Konfigurationsinformation von der Master-Konfigu
rationsdatenbank 132 in die Aktenkoffer-Datenbank 142. Die
Benutzer an den unterschiedlichen entfernten Standorten 135
und 136 können jedoch separate Elemente, die zu verändern
sind, reservieren.
Nachdem ein Herunterladevorgang durchgeführt wurde, können
Konfigurationsanwendungen an den Workstations 140 durchge
führt werden, um die Elemente zu verändern oder zu modifizie
ren, die innerhalb jeder Aktenkoffer-Datenbank 142 reserviert
wurden, und an einem bestimmten Punkt können Veränderungen an
diesen reservierten Elementen unter Verwendung einer Übertra
gungsprozedur zurück in die Master-Konfigurationsdatenbank
132 hochgeladen werden. Auf diese Weise kann die Aktenkoffer-
Datenbank 142 an Workstations 140 verwendet werden, die von
dem Hauptnetzwerk 131 völlig getrennt sind oder die über eine
langsame Kommunikationsverbindung verbunden sind, so daß bei
spielsweise ein Techniker Elemente in die Workstation 140
ziehen kann, um an einem anderen Ort zu arbeiten, diese Ele
mente ändern kann und die neueren Versionen dieser Elemente
zu einem späteren Zeitpunkt zurück in die Master-Datenbank
132 übertragen kann. Indem man es ermöglicht, eine Anzahl von
unterschiedlichen Aktenkoffer-Datenbanken 142 zur selben Zeit
zu erstellen, kann die simultane Entwicklungsarbeit verbes
sert werden. Insbesondere kann jede Aktenkoffer-Datenbank 142
eine Teilmenge der Konfiguration innerhalb der Master-
Konfigurationsdatenbank 132 enthalten, so daß die Konfigura
tionsoperationen von verschiedenen Technikern logisch ge
teilt, zugeordnet und vollendet werden können.
Falls gewünscht können neue Konfigurationsdaten periodisch
zurück zu der Master-Datenbank 132 übertragen werden, um ei
nen Datenfluß zwischen den unterschiedlichen Aktenkoffer-
Datenbanken 142 zu ermöglichen. Beispielsweise kann in der
Praxis ein Techniker an einem Ausrüstungsteil arbeiten und
ein anderer kann an dem Steuermodul arbeiten, das dieses Aus
rüstungsteil betreibt. Der letztere benötigt die endgültige
Version der Gerätekonfigurationskomponente, bevor die Steuer
modulkonfigurationskomponente vollendet wird. Die endgültige
Gerätedefinition kann jedoch aus der Master-Datenbank 132 ge
zogen werden, nachdem der erste Techniker die Arbeit an der
Gerätedefinition beendet hat und den Inhalt dieser Definition
zurück in die Master-Datenbank 132 übertragen hat.
Fig. 5 zeigt ein weiteres Beispiel eines Prozeßsteuersystems
145, in dem Aktenkoffer-Datenbanken vorteilhaft verwendet
werden können. Das Prozeßsteuersystem 145 enthält eine Steu
erzentrale, die eine Master-Konfigurationsdatenbank 147 hat,
die mit einem Datenbankserver 148, einer Benutzerworkstation
149 und einem Laufzeitserver 150 verbunden ist. Das System
145 enthält ferner eine Betriebsanlagenebene, die einen Da
tenbankserver 152 und einen Laufzeitserver 154 hat, die mit
der Steuerzentrale über eine LAN-Verbindung verbunden sind,
wobei es sich um jede Art von LAN-Verbindung einschließlich
eines gemeinsam genutzten LAN handeln kann. Die Betriebsanla
genebene enthält ferner eine Aktenkoffer-Datenbank 156, die
beispielsweise mit einem Laptop 158 oder einem anderen Compu
ter, einer Benutzerschnittstelle oder einer Workstation ver
bunden oder innerhalb derselben angeordnet sein kann, welche
beispielsweise von einem Anlagentechniker oder einem Inge
nieur verwendet wird, um Veränderungen an der Betriebsanlage
nebene durchzuführen. Der Benutzer auf der Betriebsanlagene
bene kann eine Konfigurationsanwendung von dem Computer 158
aus ablaufen lassen, um Elemente der Konfigurationsdaten, die
in der Master-Datenbank 147 gespeichert sind, über das LAN zu
erhalten und wenigstens einige dieser Elemente zu reservie
ren. Anschließend kann der Benutzer auf der Betriebsanlagen
ebene, sobald die reservierten Elemente sowie beliebige wei
tere Elemente, die von einer Konfigurationsanwendung benötigt
werden, um Änderungen an der Konfiguration in der Betriebsan
lagenebene durchzuführen, in die Aktenkoffer-Datenbank 156
heruntergeladen sind, die Konfigurationsanwendung unter Ver
wendung der lokalen bzw. Aktenkoffer-Datenbank 156 ablaufen
lassen, um Veränderungen an den reservierten Elementen durch
zuführen, und anschließend kann er diese Veränderungen über
das LAN zurück zu der Master-Datenbank 147 übertragen. Der
Prozeß eliminiert die Erfordernisse, zahlreiche Anrufe über
das gemeinsam genutzte LAN an die Master-Datenbank 147 durch
zuführen, was nicht effizient ist.
Gleichzeitig kann ein Benutzer zuhause einen Computer 160 und
eine Aktenkoffer-Datenbank 162 haben, die über einen Daten
bankserver 164, bei dem es sich beispielsweise um ein Modem
für Wählverbindungen handeln kann, verbunden sein. Dieser Be
nutzer kann von der Master-Datenbank 147 über das Modem 164
Konfigurationsdaten erhalten und diese Informationen in der
Aktenkoffer-Datenbank 162 speichern, wobei die Elemente re
serviert werden, die dieser Benutzer verändern möchte. Der
Benutzer zuhause kann anschließend in freier Zeiteinteilung
eine Konfigurationsanwendung ausführen, die die Konfigurati
onsinformationen innerhalb der Aktenkoffer-Datenbank 162 be
arbeitet, und Veränderungen nach deren Vollendung über die
Modem-Wählverbindung zurück zu der Master-Datenbank 147 über
tragen.
Auf Wunsch kann ein Benutzer Informationen, die verschiedene
Prozeßsteuersysteme, Standorte etc. betreffen, in derselben
Aktenkoffer-Datenbank herunterladen oder plazieren, wenn bei
spielsweise der Benutzer Veränderungen an zwei verschiedenen
Prozeßsteuersystemen durchzuführen wünscht. In dieser Situa
tion können mehrere Aktenkoffer-Datenbanken in einem Computer
gespeichert werden und dieser eine Computer kann verwendet
werden, um verschiedene Standorte desselben Prozesses zu kon
figurieren oder verschiedene Standorte, die zu verschiedenen
Prozessen gehören, zu konfigurieren. Typischerweise wird es
sich bei einem derartigen Computer um einen Laptop oder einen
anderen tragbaren Computer handeln, in dem Konfigurationsan
wendungen gespeichert und ausgeführt werden und der eine Kon
figurationsdatenbank und zugehörige Datenbanklade- und Zu
griffsanwendungen enthält.
Falls erwünscht, kann die Master-Datenbank in jedem der Sy
steme von Fig. 1 und 3 bis 5 automatisch ein Revisionsarchiv
von Konfigurationselementen speichern, um eine Kontrolle der
Quellen für Veränderungen an Konfigurationselementen zu
schaffen. In ähnlicher Weise können Elemente in der Aktenkof
fer-Datenbank, die modifiziert wurden, visuell gekennzeichnet
dargestellt werden, um anzuzeigen, daß die Aktenkoffer-Ver
sion modifiziert wurde und daß eine Übertragungsaktivität
ausgeführt werden muß.
Anstelle des Vorsehens einer Aktenkoffer-Datenbank kann eine
Spiegeldatenbank an entfernten Standorten eines Prozeßsteuer
systems unterhalten werden. Die Spiegeldatenbank erweitert
das Aktenkoffermodell dadurch, daß zwei Datenbanken, das
heißt die entfernte Datenbank und die Master-Datenbank, syn
chronisiert gehalten werden, was beispielsweise bei einer
Festland-/Hochsee-Prozeßsteuerkonfiguration wünschenswert
sein kann, wo das Editieren einer Datenbank über eine langsa
me Verbindung nicht durchführbar ist. Die Spiegeldatenbank
kann auch verwendet werden, um die Redundanz zu unterstützen.
In der Spiegeldatenbank werden alle Konfigurationselemente,
einschließlich beispielsweise Bibliotheks-, Setup- und Steu
erdaten, von der Master-Datenbank auf permanenter Basis ge
schrieben. Ein derartiges Abonnement kann in der in Verbin
dung mit Fig. 7 bis 15 hier beschriebenen Weise umgesetzt
werden, falls erwünscht. Ferner wird ein Konfigurationsele
ment automatisch von der Master-Datenbank reserviert, wenn
dieses Konfigurationselement in der Spiegeldatenbank editiert
wird. Somit sendet ein Editiervorgang in der Spiegeldatenbank
automatisch eine Mitteilung über die langsame Kommunikations
verbindung zu der Master-Konfigurationsdatenbank, um dieses
Element zu reservieren. Wenn die Reservierungsoperation auf
grund einer Verriegelung dieses Elements innerhalb der Ma
ster-Konfigurationsdatenbank nicht durchführbar ist, wird das
Editieren in der Spiegeldatenbank verhindert. Zu einem späte
ren Zeitpunkt wird, nachdem eine Veränderung in der Spiegel
datenbank vorgenommen wurde, das Konfigurationselement von
der Spiegeldatenbank zurück in die Master-Konfigurationsda
tenbank übertragen. Diese Übertragungsaktivität kann automa
tisch ausgeführt werden, wenn eine Veränderung durchgeführt
wurde, periodisch auf zeitabhängiger Basis, wie etwa alle 10
Minuten, oder von Hand ansprechend auf einen Benutzerbefehl
zur Durchführung einer Übertragungsaktivität.
Umgekehrt werden bedingt durch das Abonnementverhältnis der
Spiegeldatenbank an der Master-Datenbank Veränderungen an der
Master-Konfigurationsdatenbank unmittelbar über die langsame
Kommunikationsverbindung zu der Spiegeldatenbank verschoben
oder gesendet. Bei einer Spiegeldatenbank können beide Daten
banken unabhängig arbeiten, wenn die Kommunikationsverbindung
unterbrochen ist. Modifikationen an den Datenbanken müssen
jedoch von Hand abgestimmt werden, wenn die Kommunikations
verbindung wieder aufgenommen wurde. Im allgemeinen können
mehrere Spiegeldatenbanken als Abonnenten derselben Master-
Datenbank existieren. Aufgrund der Abonnement-Natur der Ver
bindung zwischen der Spiegeldatenbank und der Master-Daten
bank müssen, sobald die Spiegeldatenbank geschaffen wurde,
nur Veränderungen an Daten innerhalb der Spiegeldatenbank und
der Master-Datenbank über die langsame bzw. mit geringer
Bandbreite arbeitende Kommunikationsverbindung gesendet wer
den, was effizienter ist, als zu versuchen, Konfigurationsda
ten stückweise nach Bedarf von jedem der Benutzer der Spie
geldatenbanken herunterzuladen.
Anstatt eine einzelne Master-Konfigurationsdatenbank und eine
oder mehrere Aktenkoffer- oder Spiegeldatenbanken zu haben,
die periodisch mit der Master-Konfigurationsdatenbank syn
chronisiert werden müssen, oder zusätzlich zu dieser Anord
nung kann eine Konfigurationsdatenbank über verschiedene Ab
schnitte eines Prozeßsteuersystems verteilt sein, so daß ver
schiedene Komponenten der Konfigurationsdaten in verschiede
nen physischen Datenbanken gespeichert sind, die an verschie
denen physischen Standorten des Prozeßsteuersystems angeord
net sind. Die verteilten Konfigurationsdatenbanken können
verwendet werden, um es zu ermöglichen, daß Konfigurationsin
formationen, die zwei oder mehr geographisch getrennte Stand
orte oder Plätze betreffen, miteinander integriert werden und
eine nahtlose Ansicht des gesamten Prozeßsteuersystems gebil
det wird, wobei diese nahtlose Ansicht beliebige bzw. alle
Prozeßsteuerkonfigurationskomponenten in jedem der unter
schiedlichen Standorte oder -plätze enthalten kann.
Fig. 6 stellt ein Prozeßsteuersystem 170 dar, das eine Hier
archie von Konfigurationsdatenbanken hat, die verschiedene
logische und/oder physische Orte betreffen. Das Prozeßsteuer
system 170 enthält drei Zonen mit den Namen Zone_A 172, Zo
ne_B 174 und Zone_C 176, zwei Standorte namens Standort_1 180
und Standort_2 182 und ein Unternehmensnetzwerk 184. Die Zo
nen 172 und 174 enthalten Konfigurationsdatenbanken 172a bzw.
174a und diese Zonen sind beispielsweise über einen Satelli
ten, ein Modem oder eine andere langsame, mit niedriger Band
breite arbeitende oder nicht kontinuierliche Kommunikations
verbindung mit dem Standort 180 in Kommunikationsverbindung
(wie durch die Linien zwischen den Zonen 172 und 174 und dem
Standort 180 dargestellt). Entsprechend enthält die Zone 176
eine Konfigurationsdatenbank 176a und steht über eine belie
bige Kommunikationsverbindung mit dem Standort 182 in Kommu
nikation. Ferner enthalten die Standorte 180 und 182 Konfigu
rationsdatenbanken 180a bzw. 182a und sind über eine beliebi
ge Kommunikationsverbindung mit dem Unternehmenssystem 184
verbunden. Das Unternehmenssystem 184 enthält auch eine Da
tenbank 184a.
Eine Zone, beispielsweise jede der Zonen 172, 174 und 176,
ist typischerweise eine logische und kann in vielen Fällen
eine physische Unterteilung eines großen Steuersystems sein.
Somit kann eine Zone allgemein ohne Verbindung zur Außenwelt
funktionieren. Eine Zone kann beispielsweise jedes traditio
nelle Prozeßsteuersystem sein, das miteinander verbundene
Einrichtungen an einem bestimmten geographischen Ort hat. Ein
Standort, wie etwa jeder der Standorte 180 und 182, ist eine
logische Definition eines Bereiches, einer Region etc., und
kann eine beliebige Anzahl von Zonen haben, die zu diesem ge
hören. Das Unternehmenssystem 184 ist das System der höchsten
Ebene in der Konfigurationsdatenbankhierarchie innerhalb des
Prozeßsteuersystems 170 und steht mit jedem der Standorte und
dadurch mit jeder der Zonen innerhalb des Prozeßsteuersystems
170 in Kommunikationsverbindung. Selbstverständlich könnten
andere Standorte, Zonen und Bereiche oder andere logische
Einheiten mit der Hierarchie des Prozeßsteuersystems 170 über
langsame oder andere Kommunikationsverbindungen verbunden
werden und die unterschiedlichen geographischen Orte eines
Prozeßsteuersystems können auf andere Weise miteinander ver
bunden werden, solange die Konfigurationsdatenbank jeder Zo
ne, jedes Standortes, jedes Bereiches etc. von jeder anderen
Zone, jedem anderen Standort, Bereich etc. über eine oder ei
ne Reihe von zwei oder mehr Kommunikationsverbindungen zu
greifbar ist. Während ferner die verteilte Kommunikationsda
tenbankhierarchie von Fig. 6 drei Ebenen (Zonen, Standorte
und das Unternehmen) enthält, könnten anstelle dessen zwei
Ebenen oder vier oder mehr Ebenen verwendet werden.
Wie Fig. 6 zeigt, ist jeder Abschnitt des Prozeßsteuersy
stems 170 mit einer Konfigurationsdatenbank ausgerüstet und
die Konfigurationsinformation für das gesamte Prozeßsteuersy
stem 170 oder die verschiedenen Elemente desselben ist über
die Datenbanken 172a, 174a, 176a, 180a, 182a und 184a ver
teilt. In einer bevorzugten Ausführungsform sind die Konfigu
rationsdaten oder Konfigurationskomponenten in der Konfigura
tionsdatenbank für die niedrigste Ebene in der Hierarchie,
die aus dem Unternehmen, den Standorten und den Zonen gebil
det ist, für die diese Daten alleine benannt sind. So werden
beispielsweise Bibliotheksdaten, welche Vorlagen von Einrich
tungen und Softwareelementen speichern können, die überall in
dem Prozeßsteuersystem 170 verwendet werden können, typi
scherweise in der höchsten Ebene in der Hierarchie gespei
chert und sind in dieser zugänglich, das heißt in der Konfi
gurationsdatenbank 184a des Unternehmenssystems 184. In ähn
licher Weise können Informationen, die die Bibliothekskompo
nenten und die Systemkonfiguration eines Standortes betref
fen, in der Konfigurationsdatenbank des Standortes gespei
chert werden, während Konfigurationsinformationen, die zu be
stimmten Einrichtungen, Steuermodulen etc. in eine Zoner ge
hören, in der Konfigurationsdatenbank dieser Zone gespeichert
werden. Ferner wird die Steuerkonfigurationsinformation typi
scherweise in einer Zonenkonfigurationsdatenbank gespeichert,
da diese Konfigurationsinformationen physische Einrichtungen
in dieser Zone direkt betreffen. Allgemein ausgedrückt ist es
das Ziel, jedes bestimmte Teil von Konfigurationsdaten in der
Konfigurationsdatenbank der Hierarchie von Datenbanken zu
speichern, wo auf diese Konfigurationsdaten am wahrschein
lichsten zugegriffen wird, oder in einer Weise, daß jedes be
stimmte Teil von Konfigurationsdaten ohne weiteres von Benut
zern an anderen Orten des Prozeßsteuersystems 170 gefunden
werden kann.
Bei der in Fig. 6 dargestellten verteilten Konfigurationsda
tenbankstrategie greift eine Konfigurationsanwendung, die in
einer der Zonen, an einem der Standorte, in einem der Berei
che etc. des Prozeßsteuersystems 170 abläuft, auf Konfigura
tionsdaten von einer oder mehreren Konfigurationsdatenbanken
zu, die an demselben Standort, in derselben Zone etc.
und/oder an anderen Standorten, in anderen Zonen etc. ange
ordnet sein können, und greift auf diese Daten nach Bedarf
zu, um den gegenwärtigen Status des Prozeßsteuersystems 170
darzustellen oder andere Konfigurationsoperationen auszufüh
ren. Es versteht sich, daß eine Konfigurationsanwendung, die
von einer der Zonen, einem der Standorte oder dem Unterneh
menssystem von Fig. 6 ausgeführt wird, in der Lage ist, auf
die Konfigurationsdaten zuzugreifen, die in jeder der ver
schiedenen Konfigurationsdatenbanken gespeichert sind, um ei
ne Darstellung der aktuellen Konfiguration jedes Teiles oder
des gesamten Prozeßsteuersystems 170 zu geben, und in der La
ge sein kann, jedes der Elemente innerhalb jedes Standortes,
innerhalb jeder Zone etc. des Prozeßsteuersystems 170 neu zu
konfigurieren. Eine verteilte Konfigurationsdatenbank, wie
etwa die in Fig. 6 gezeigte, hat die Tendenz, die Menge der
Kommunikation zu vermindern, die über die langsame Kommunika
tionsverbindung durchgeführt werden muß, da typischerweise
Benutzer an einem Standort oder in einer Zone wahrscheinli
cher die Konfigurationsdaten dieses Standortes oder dieser
Zone betrachten, benutzen oder verändern, als diejenigen ei
nes anderen Standortes oder einer anderen Zone, was bedeutet,
daß die meisten Lesevorgänge aus und Schreibvorgänge in die
Konfigurationsdatenbank innerhalb eines Standortes oder einer
Zone von Benutzerschnittstellen innerhalb dieses Standortes
oder dieser Zone auftreten, während weniger derartige Lese
vorgänge und Schreibvorgänge von anderen Zonen oder Standor
ten über eine oder mehrere langsame Kommunikationsverbindun
gen kommen. Es ist jedoch die gesamte Konfigurationsinforma
tion für jeden Teil des Prozeßsteuersystems 170 für Benutzer
schnittstellen oder andere Einrichtungen in jedem anderen
Teil des Prozeßsteuersystems 170 verfügbar.
Um die Kommunikation zwischen den verschiedenen Zonen, Stand
orten etc. zu ermöglichen, kann jede Datenbank innerhalb des
Systems Informationen speichern, die die allgemeine Einstel
lung der Konfigurationshierarchie betreffen. Beispielsweise
kann jede Datenbank einige Objektwurzeln speichern, die für
die Konfiguration in allen Orten gemeinsam sind, und Zeiger
speichern, welche die bestimmte Datenbank angeben, die weite
re Konfigurationsinformationen über diese Wurzeln hat, oder
die die nächste Datenbank angeben, die für diese Information
abzufragen ist. So kann ein Benutzer in Zone_A 172 versuchen,
auf ein Wurzelobjekt zuzugreifen und untergeordnete Elemente
dieser Wurzel anfordern. Ansprechend darauf kann die Konfigu
rationsdatenbank 172a die Datenbank finden, welche die unter
geordneten Elemente speichert, indem ein Zeiger für die aus
gewählte Wurzel betrachtet wird, und dieser Zeiger kann ange
ben, daß auf die Daten für diese Wurzel von der Unternehmens
datenbank 184a zugegriffen werden muß oder daß auf die Daten
bank 180a von Standort_1 zugegriffen werden sollte, um weite
re Zeiger für diese Daten zu erhalten. Die Datenbank 172a
kann dann einen Auslesevorgang der Datenbank 180a über eine
langsame Verbindung veranlassen, was veranlassen kann, daß
die Datenbank 180a den Lesevorgang der Unternehmensdatenbank
184a durchführt. Selbstverständlich ist es möglich, daß die
Unternehmensdatenbank 184a auf die Datenbank 182a von Stand
ort_2 zugreift, welche möglicherweise auf die Datenbank 176a
von Zone_C für diese Daten zugreifen muß. Alternativ können
Browser- oder Suchanwendungen an jeder Datenbank vorgesehen
sein, um beispielsweise die Datenbank 172a von Zone_A, die
Datenbank von Standort_1 oder andere Datenbanken zu durchsu
chen, um den Ort eines bestimmten Teiles von Konfigurations
daten innerhalb des verteilten Konfigurationssystems 170 zu
finden.
Auf Wunsch kann jede Datenbank innerhalb des Systems 170 eine
lokale Kopie von Daten speichern, die ursprünglich an einem
anderen Standort, in einer anderen Zone etc. gespeichert
sind. Insbesondere wenn eine Anfrage nach Daten, die nicht in
einer bestimmten Datenbank gespeichert sind, erhalten wird,
kann die Datenbank diese Daten von einer anderen Datenbank
abrufen und bei Abrufen dieser Daten diese lokal zur Benut
zung durch die Benutzer speichern, die direkt mit dieser Da
tenbank (wie etwa die Benutzer an demselben Standort und in
derselben Zone) verbunden sind, oder sie ansprechend auf An
forderungen von anderen Datenbanken innerhalb der Datenbank
hierarchie weitersenden. Somit kann in vorstehend beschriebe
nem Beispiel jede der Datenbanken 180a, 184a und 182a eine
lokale Kopie von Konfigurationsdaten speichern, die ursprüng
lich in der Datenbank 176a von Zone_C gespeichert sind, da
diese Daten von der Datenbank 172a der Zone_A oder einem Be
nutzer in Zone_A angefordert wurden.
Da auf einige oder alle Konfigurationsdaten für eine bestimm
te Konfigurationsansicht, die auf einer beliebigen Benutzer
schnittstelle angezeigt wird, über eine oder mehrere langsame
Kommunikationsverbindungen zugegriffen wird, ist es möglich,
in eine Situation zu geraten, in der Konfigurationsdaten, die
auf einer bestimmten Benutzerschnittstelle angezeigt werden,
basierend auf Veränderungen, die an der Konfigurationsinfor
mation durch einen anderen Benutzer durchgeführt wurden, sei
es an demselben Standort oder in derselben Zone oder anders
wo, überaltert bzw. nicht mehr aktuell sind. Während jede
Konfigurationsanwendung periodisch auf die entsprechende Kon
figurationsdatenbank zugreifen könnte, um die Konfigurati
onsinformation, die auf einem Bildschirm dargestellt wird, zu
aktualisieren, würde diese periodische Aktualisierung bzw.
Auffrischung das Ausmaß der Kommunikation, die über die lang
same Kommunikationsverbindung durchgeführt werden muß, be
trächtlich erhöhen und würde ferner die Zahl der Lesevorgänge
aus den Konfigurationsdatenbanken erhöhen, was die Kommunika
tion innerhalb des Prozeßsteuersystems 170 verlangsamt und
die Belastung jeder der Konfigurationsdatenbanken darin er
höht.
Zur Lösung des Problems kann jede Konfigurationsanwendung,
die auf Konfigurationsdaten zugreift, die geeignete Konfigu
rationsdatenbank für jede Konfigurationskomponente, die auf
dem Bildschirm dargestellt (oder anderweitig verwendet) wird,
abonnieren und die Konfigurationsdatenbank, die diese Daten
speichert, benachrichtigt automatisch jede Abonnentenkonfigu
rationsanwendung (Client) über Veränderungen, die an der In
formation innerhalb der Konfigurationsdatenbank vorgenommen
wurden. Diese Veränderungen können anschließend automatisch
an den Client gesendet werden und beispielsweise auf einem
Benutzerbildschirm dargestellt werden, oder die Veränderungen
können von dem Benutzer angefordert werden. Auf diese Weise
ist die Konfigurationsinformation, die von jeder Konfigurati
onsanwendung verwendet wird, beispielsweise jedes Teil der
Informationen, die auf jedem Bildschirm dargestellt werden,
ungeachtet dessen, wo die Client-Anwendung, welche diese In
formation verwendet, innerhalb des Prozeßsteuersystems 170
angeordnet ist, aktuell.
Wenn eine Client-Anwendung bestimmte Stücke einer Konfigura
tionsinformation nicht mehr benötigt, beispielsweise wenn ein
Benutzer nicht länger ein bestimmtes Stück der Konfigurati
onsinformationen in einer Konfigurationshierarchie betrachten
möchte, löst die Konfigurationsanwendung selbstverständlich
das Abonnement mit der Konfigurationsdatenbank, in der dieser
Teil der Information gespeichert ist, so daß die Benachrich
tigungen über Veränderungen oder Aktualisierungen nicht wei
ter zu der abonnierenden Konfigurationsanwendung gesendet
werden. Auf diese Weise findet die Konfigurationsanwendung
die Konfigurationsdatenbank, in der jeder Teil der Konfigura
tionsinformation innerhalb beispielsweise des Baumes 65 von
Fig. 2 gespeichert ist, ruft diese Information erforderli
chenfalls durch eine oder mehrere langsame Kommunikationsver
bindungen ab, abonniert jeden Teil der Information darin, um
so Aktualisierungen, die an dieser Information innerhalb der
Konfigurationsdatenbank, in der diese Information gespeichert
ist, zu empfangen, und zeigt nach Erhalt von Aktualisierungen
der dargestellten Information (welche durch einen anderen Be
nutzer verursacht sein können, der Veränderungen an der Kon
figuration des betrachteten Systems vornimmt) die neue bzw.
aktualisierte Information an. Wenn ein Benutzer oder eine Be
dienungsperson einen Abschnitt des Konfigurationsbaumes, der
dargestellt wird, tiefer hinab verfolgt, greift die Konfigu
rationsanwendung auf die neue Information zu, abonniert diese
Information und zeigt diese Information in derselben Weise
an. Wenn ein Teil der angezeigten Information von dem Benut
zerbildschirm entfernt wird, löst die Konfigurationsanwendung
das Abonnement der Daten, die fallengelassen wurden.
Auf Wunsch können alle Konfigurationsinformationen, die er
halten wurden (beispielsweise am Bildschirm einer bestimmten
Benutzerschnittstelle betrachtet wurden), in einem lokalen
Cache oder Speicher gespeichert werden, der mit einer Konfi
gurationsanwendung verbunden ist, die abläuft, oder können in
der Konfigurationsdatenbank innerhalb der Zone, des Standorts
etc. gespeichert werden, in der die Anwendung abläuft, so daß
dann, wenn eine Verbindung zu der entsprechenden Datenbank
unterbrochen wird, der oder die Benutzer an dem Standort, in
der Zone etc. diese Konfigurationsinformationen weiterhin aus
dem lokalen Cache entnehmen können. Diese Informationen kön
nen jedoch in einer Weise dargestellt werden, die angibt, daß
diese Informationen aus dem lokalen Cache stammen (beispiels
weise grau hinterlegt dargestellt), so daß der Benutzer weiß,
daß diese Informationen möglicherweise nicht aktuell sind.
Die Verwendungen eines derartigen lokalen Cache zum Speichern
von Konfigurationsdaten, die bereits über eine oder mehrere
langsame Verbindungen erhalten wurden, ermöglicht es einem
Benutzer, jede Konfigurationsinformation zu betrachten, die
bereits betrachtet bzw. auf die bereits von einem Benutzer
zugegriffen wurde, wenn eine Kommunikationsverbindung oder
-leitung unterbrochen wird. Auch wenn der Benutzer Informa
tionen zu betrachten wünscht, die von seinem Bildschirm be
reits wieder fallengelassen wurden, können diese Informatio
nen aus dem lokalen Cache entnommen werden, womit sie rascher
erscheinen, während die Verbindung zu der geeigneten Konfigu
rationsdatenbank für diese Informationen wiederhergestellt
werden kann, um diese Informationen zu aktualisieren.
Während Fig. 6 jeden dieser Standorte und jede dieser Zonen
als durch eine langsame Verbindung verbunden darstellt, ist
ein derartiger Aufbau nicht unbedingt notwendig. Beispiels
weise kann die Konfigurationsdatenbank für einen Standort in
einer Zone angeordnet sein und direkt von dieser Zone zu
greifbar sein, während sie über eine langsame Kommunikations
verbindung für andere Zonen zugreifbar ist, die zu diesem
Standort gehören. Um beispielsweise eine verteilte Konfigura
tionsdatenbank wie die in Fig. 6 gezeigte zu schaffen, kann
ein Benutzer in Zone_A 172 eine Standortdatenbank (das heißt
die Datenbank 180a für den Standort_1) auf demselben Gerät
wie die Datenbank 172a für die Zone_A oder auf einem anderen
Gerät, das mit der Datenbank 172a für die Zone_A über eine
direkte Hochgeschwindigkeitsverbindung verbunden ist, ein
richten. Alternativ kann die Datenbank 180a für den Stand
ort_1 mit der Datenbank 172a für die Zone_A über eine langsa
me Verbindung verbunden sein. Der Benutzer veröffentlicht ei
nige oder alle Bibliotheken und Einrichtungsdaten in Zone_A
für die Datenbank 180a von Standort_1 und/oder für die Daten
bank 184a des Unternehmenssystems. Anschließend kann die Da
tenbank 172a in Zone_A 172 automatisch eine oder mehrere der
Konfigurationselemente innerhalb der Datenbank 180a des
Standorts_1, der Unternehmensdatenbank 184a etc. abonnieren,
wenn ein Benutzer oder eine Konfigurationsanwendung innerhalb
der Zone_A 172 Zugriff auf diese Elemente benötigt oder
wünscht. Nach Wunsch kann jede Konfigurationsdatenbank des
Systems 170 immer einige oder alle der Konfigurationsinforma
tionen innerhalb einer oder mehrerer der anderen Konfigurati
onsdatenbanken des Systems abonnieren.
Desweiteren kann ein Benutzer in Zone_B 174 die Datenbank
180a von Standort_1, die von dem Benutzer in Zone_A geschaf
fen wurde, als die Standortdatenbank für die Zone_B 174 aus
wählen. Der Benutzer in Zone_B 174 abonniert dann einige oder
alle Bibliotheks- und Setup-Daten in der Datenbank 180a für
den Standort_1, was zu Konflikten führen kann, sofern ein
Element mit demselben Namen in der Datenbank 180a für den
Standort_1 und der Datenbank 174a für die Zone_B existiert.
Eine Konfigurationsanwendung kann den Benutzer in Zone_B 174
über dieses Problem unterrichten und der Benutzer in Zone_B
174 kann die Option angeboten bekommen, ein lokales Element
neu zu benennen, bevor Elemente in der Datenbank 180a von
Standort_1 abonniert werden, oder das lokale Element zu über
schreiben. Zusätzlich kann der Benutzer in Zone_B 174 die
Elemente für die Datenbank 180a von Standort_1 veröffentli
chen und anschließend wird Zone_A 172 über die Hinzufügungen
zu der Datenbank 180a von Standort_1, die Zone_A abonniert
hat, benachrichtigt, und kann anschließend diese zusätzliche
Konfigurationselemente abonnieren. Selbstverständlich wird
die Unternehmens-/Standorthierarchie in ähnlicher Weise kon
figuriert, um dadurch die Kommunikation zwischen den Standor
ten 180 und 182 und zwischen den Zonen 172, 174 und 176 zu
ermöglichen.
Um eine Verbindung zwischen Zone_A 172 und Zone_C 176 zu
schaffen, wenn beispielsweise ein Benutzer in Zone_A 172 Kon
figurationskomponenten zu betrachten wünscht, die in der Da
tenbank 176a von Zone_C 176 gespeichert sind, veröffentlicht
die Datenbank 176a von Zone_C diese Daten für die Datenbank
182 von Standort_2, welche diese Informationen abonniert und
welche diese Informationen für die Unternehmenssystemdaten
bank 184a veröffentlicht, welche diese Informationen von
Standort_2 182 abonniert hat. Standort_1 180 abonniert diese
Informationen von der Unternehmensdatenbank 184a, während Zo
ne_A 172 diese Informationen von der Datenbank 180 von Stand
ort_1 abonniert. Die eingerichtete Abonnentenbeziehung kann
anschließend verwendet werden, um einen Client oder Benutzer
in Zone_A 172 über Veränderungen der Konfigurationskomponen
ten, die in der Datenbank 176a von Zone_C gespeichert sind,
zu benachrichtigen. Wie vorstehend angegeben kann eine Zone,
ein Standort etc. Elemente individuell oder einen gesamten
Verzweigungsbaum von Objekten einschließlich übergeordneten
Elementen und allen zugehörigen untergeordneten Elementen
abonnieren. Das Abonnement kann auch das Übernehmen einer Ko
pie der Elemente, das Hinzufügen dieser Elemente zu der Kon
figurationsdatenbank der lokalen Zone und das Schaffen einer
fortdauernden Kommunikationsbeziehung zwischen den veröffent
lichten Elementen und den lokalen Kopien umfassen. Die veröf
fentlichende Datenbank kann die Abonnementen verfolgen, wäh
rend die abonnierenden Datenbanken verfolgen, wo die ur
sprüngliche Information gespeichert ist. Diese Quellen-
/Bestimmungsortinformation kann verwendet werden, um Reser
vierungen von Elementen innerhalb einer Konfigurationsdaten
bank zu leiten und Veränderungen von entfernten Orten aus
vorzunehmen. Entsprechend kann diese Information verwendet
werden, um die Veröffentlichungs-/Abonnentenbeziehung neu
herzustellen, wenn eine Datenbank aus der Sicherungskopie
wieder aufgebaut werden muß.
Da die Kommunikation zwischen Zonen nicht immer aufgrund des
Vorhandenseins der langsamen Kommunikationsverbindung zwi
schen den Zonen garantiert werden kann, funktionieren die Zo
nen natürlich weiterhin unabhängig, wenn die Kommunikations
verbindungen unterbrochen sind. Wenn die Kommunikation wieder
hergestellt ist, müssen jedoch gegebenenfalls Konflikte von
Hand gelöst werden.
Es versteht sich, daß die Kommunikation zwischen Zonen,
Standorten und dem Unternehmen auf der Basis von Veröffentli
chung und Abonnement durchgeführt werden kann, wobei die Kon
figurationsdatenbank, welche die Masterkopie des Konfigurati
onselementes hat, dieses Element veröffentlicht, wenn ein
oder mehrere Abonnenten dieses Element abonnieren. Die Abon
nenten können beispielsweise Konfigurationsanwendungen sein,
die in Benutzerschnittstellen (beispielsweise Workstations
oder anderen Computern) in verschiedenen Standorten oder Zo
nen ausgeführt werden, können Datenbanken innerhalb dieser
Standorte oder Zonen sein, welche Datenbanken von Konfigura
tionsanwendungen verwendet werden, die in diesen Zonen ausge
führt werden, oder können beliebige andere Einrichtungen oder
Anwendungen sein, welche die Konfigurationsdaten benutzen.
Die Elemente innerhalb einer Datenbank, die von anderen
Standorten oder Zonen abonniert werden können, werden als ge
meinsam genutzte Objekte bezeichnet. Selbstverständlich kön
nen unterschiedliche Arten von Operationen an gemeinsam ge
nutzten Objekten durchgeführt werden, wie etwa 1.) Durchsu
chen, wobei eine Abonnentenkonfigurationsanwendung die Liste
der gemeinsam genutzten Objekte, die von dem Veröffentlicher
verfügbar sind, sichtet, 2.) Abonnieren, wobei eine Abonnen
tenkonfigurationsanwendung eine lokale Kopie eines gemeinsam
genutzten Objektes zur Verwendung bei Konfigurationsaktivitä
ten am Ort des Abonnenten anfordert, 3.) Kopieren in ein lo
kales Objekt, wobei eine Abonnentenkonfigurationsanwendung
ein Element in ein nicht gemeinsam genutztes lokales Objekt
oder eine entsprechende Datenbank kopiert, 4.) Löschen, wobei
eine Abonnentenkonfigurationsanwendung das gemeinsam genutzte
Objekt in dem Veröffentlicher löscht, 5.) Lösung des Abonne
ments, wobei eine Abonnentenkonfigurationsanwendung die Abon
nementverbindung zwischen der lokalen Kopie des Konfigurati
onselements bei dem Abonnenten und der Veröffentlicherkopie
unterbricht, 6.) Veränderungen abholen, wobei die Abonnenten
konfigurationsanwendung die neueste Version des gemeinsam ge
nutzten Elements von dem Veröffentlicher abruft, 7.) Reser
vieren, wobei die Abonnentenkonfigurationsanwendung ein ge
meinsam genutztes Objekt in der Veröffentlicherdatenbank ver
riegelt, um zu verhindern, daß dieses Objekt durch einen an
deren Benutzer verändert wird, und 8.) Übertragen, wobei die
Abonnentenkonfigurationsanwendung Veränderungen, die an einem
reservierten Element durchgeführt wurden, zurück in die Ver
öffentlicherdatenbank schiebt. Diese Operationen können durch
Übersenden von Mitteilungen zwischen dem Abonnenten und dem
Veröffentlicher durchgeführt werden und die Ausführung von
Software an dem Abonnentenstandort und dem Veröffentlicher
standort, um die Mitteilungen zu verarbeiten und geeignete
Aktionen wie vorstehend beschrieben auszuführen.
Aus dem Blickwinkel der Konfiguration gibt es verschiedene
Aktivitäten zwischen Zonen, die durchgeführt werden können,
einschließlich das gemeinsame Nutzen von Setup- und Biblio
theksdaten zwischen Zonen, das Durchsuchen oder Betrachten
von Setup-, Bibliotheks- und Konfigurationsdaten aus einer
anderen Zone, die Konfigurierung von Verweisen zwischen den
Zonen und die Koordination von Namensraum (Namespace) zwi
schen den Zonen. In einer Ausführungsform werden Konfigurati
onsobjekte oder -elemente von den unmittelbar übergeordneten
Elementen innerhalb der Hierarchie gemeinsam genutzt. Bei
spielsweise nutzen die Zonen 172 und 174 eine zusammengesetz
te Definition von dem Standort 180 gemeinsam und alle Zonen
nutzen einen gemeinsamen Aufzählungssatz von dem Unterneh
menssystem 184 gemeinsam. Die Zonen 172 und 174 abonnieren
die Definitionen in den Standort 180, während die Zone 176
die Definitionen in dem Standort 182 abonniert. Entsprechend
abonnieren die beiden Standorte 180 und 182 gemeinsame Defi
nitionen in dem Unternehmenssystem 184.
Durchsuchungs-Dienste bzw. Browser sind in einer Konfigurati
onsanwendung vorgesehen, um einen Server in der Unternehmens-
/Standort-/Zonenhierarchie zu finden und die Konfigurations
datenbank zu durchsuchen, die zu einem dieser Orte gehört.
Durchsuchungsdienste werden verwendet, um ein Abonnement an
gemeinsam genutzten Objekten einzurichten und die Verweise
zwischen den Zonen zu konfigurieren. Insbesondere wird die
Durchsuchungsinformation von einem entfernten Server auf An
frage eines Benutzers abgefragt und lokal im Cache gespei
chert. Die Durchsuchungswurzeln können durch Absuchen des
Netzwerkes erfaßt werden oder können unter Verwendung jeder
anderen gewünschten oder bekannten Durchsuchungstechnik ge
funden werden. Das Wissen über erfaßte oder konfigurierte
Durchsuchungswurzeln kann dauerhaft sein und bleibt so über
einen Einschaltzyklus im Cache gespeichert. Das Vorhandensein
dieser Konfigurationsobjektwurzeln ermöglicht es einem Benut
zer, andere Informationen, die zu diesen Wurzeln gehören, bei
der Durchsuchung zu finden und den Ort oder den Pfad zu die
ser Information innerhalb der verteilten Konfigurationshier
archie zu finden.
Verweise zwischen Zonen können konfiguriert werden, indem der
Verweis direkt eingegeben wird, oder indem beim Durchsuchen
ein Attribut in einer entfernten Datenbank aufgefunden wird.
Verweise können die Form von beispielsweise "//ZonenName/Mar
kiertesElement/. . ./Attributname" oder jede andere gewünschte
Form annehmen. Es versteht sich, daß Zonennamen innerhalb ei
ner Unternehmenshierarchie einzigartig sein müssen, um Ver
weise zwischen Zonen praktikabel zu machen. Innerhalb jeder
Zone ist ein Namensraum für markierte Elemente vorhanden und
das Konfigurationssystem kann die Einzigartigkeit von Markie
rungen innerhalb einer Zone zwangsweise durchsetzen. Somit
kann jede Konfigurationsanwendung ein Tool haben, welches be
stimmt, ob eine Markierung innerhalb eines Standortes oder
innerhalb des Unternehmens zu einem gegebenen Moment einzig
artig ist, um die Einzigartigkeit bei der Benennung innerhalb
der verteilten Konfigurationsdatenbank zwangsweise durchzu
setzen.
Auf Wunsch kann die Sicherheit zwischen Zonen in jeder ge
wünschten Weise geschaffen werden und ein Zonenadministrator
kann die Privilegien für den Zugriff auf gemeinsam genutzte
Objekte für einen Benutzer, für eine Gruppe etc. gewähren.
Diese Privilegien können die Fähigkeit einschließen, gemein
sam genutzte Objekte zu durchsuchen und zu abonnieren, die
Fähigkeit, Veränderungen von einem Veröffentlicher an Objek
ten oder Konfigurationselementen abzuholen, und die Fähig
keit, Veränderungen zu reservieren, zu modifizieren und zu
übertragen.
Ferner können auf Wunsch unterschiedliche Zonen verschiedene
Sprachen nutzen, was beispielsweise in Europa von Vorteil
sein kann, wo Firmen in Regionen mit vielen unterschiedlichen
Sprachen tätig sind. In diesem Fall können Aufzählwerte zwi
schen Zonen als numerische Werte oder als ein lokaler Daten
string (wie z. B. ein Wort) weitergeleitet werden, welche zu
sammen mit einem numerischen Wert, der über das ganze Prozeß
steuersystem für dasselbe Wort oder denselben Satz in unter
schiedlichen Sprachen gemeinsam ist, angezeigt werden können.
Auf diese Weise kann ein Benutzer den Aufzählungswert, den
Befehl etc. an seiner entsprechenden Zahl erkennen, was ohne
weiteres die Umwandlung von einer Sprache in die andere er
möglicht. In jedem Fall erfordert das Durchsuchen einer Da
tenbank, die eine andere Sprache benutzt, daß der entspre
chende Zeichensatz in der Durchsuchungseinrichtung oder Zone
installiert ist. In einer Ausführungsform sind die Verweise
zwischen den Zonen in der Sprache der entfernten Zone konfi
guriert und Unicode-Strings werden in dem ganzen System aus
schließlich verwendet, um das Erfassen oder Umwandeln jedes
Zeichens in jede Sprache, die von Unicode unterstützt wird,
zu ermöglichen. In diesem Fall kann eine einzige Datenbank
das Speichern von Strings von mehreren Sprachen bewältigen
und Datenbankexportdateien werden im Unicodeformat ausge
tauscht. Mit anderen Worten werden Dateien von verschiedenen
Orten in jede Datenbank unter Verwendung des Unicodeformats
importiert.
Um sicherzustellen, daß Modifikationen ohne Störung durchge
führt werden können, können Modifikationen an gemeinsam ge
nutzten Daten vorbehaltlich eines Reservierungs-/Übertra
gungsvorganges durchgeführt werden, der vorstehend beschrie
ben wurde. In diesem Fall muß der modifizierende Benutzer,
bevor ein Element revidiert werden kann, dieses Element in
der Zone des modifizierenden Benutzers reservieren. Nur ein
Benutzer oder eine Zone können ein Element zu einem Zeitpunkt
jeweils reservieren. Nachdem ein Element reserviert wurde,
werden Veränderungen an dem Element in der lokalen Datenbank
durchgeführt, die dieses Element reserviert hat, wobei derar
tige Veränderungen als ein Resultat einer neuen Konfigurati
onsaktivität durch den Benutzer, der das Element reserviert
hat, durchgeführt werden. Anschließend wird das Element bzw.
die Gruppe von Elementen, die reserviert wurde und modifi
ziert wurde, zurück in die Konfigurationsdatenbank übertra
gen, wo diese Daten als Master-Datensatz gespeichert sind.
Ein derartiger Reservierungs-/Übertragungsvorgang stellt si
cher, daß nicht zwei Benutzer versuchen können, dasselbe Ele
ment zur selben Zeit zu verändern. Der zweite Benutzer, der
versucht, das Element zu reservieren, wird anstelle dessen
daran gehindert, Modifikationen durchzuführen, bis der erste
Benutzer, der das Element reserviert hat, die Veränderungen
an dem Element zurück in die Konfigurationsdatenbank übertra
gen hat, in der die Masterversion dieses Elements gespeichert
ist.
Allgemein können zwei Modi des Abonnements verwendet werden.
In dem ersten Modus, der hier als sicherer Abonnementmodus
bezeichnet wird, werden neue gemeinsam genutzte Elemente au
tomatisch in eine Abonnementzone oder einen Standort gezogen,
während Modifikationen an Elementen bzw. Löschungen von Ele
menten, die bereits vorhanden sind, von Hand gezogen werden,
d. h. es ist ein direkter Befehl von dem Benutzer erforder
lich, um das Hereinziehen der veränderten oder gelöschten In
formation durchzuführen. In diesem Fall kann der Benutzer
über eine Veränderung oder eine Löschung an einer Konfigura
tion, die das Benutzersystem abonniert hat, benachrichtigt
werden, und kann gefragt werden, ob die Konfigurationsanwen
dung dieser Veränderung in die lokale Datenbank ziehen soll.
Alternativ können alle Modifikationen automatisch gezogen
werden, so daß alle Veränderungen an der gemeinsam genutzten
Datenbank in die abonnierenden Datenbanken ohne Eingreifen
des Benutzers importiert werden. Es sei angemerkt, daß in dem
sicheren Abonnementmodus eine Mitteilung einer Veränderung
nicht durch die gesamte Hierarchie durchgängig ist. Wenn so
mit beispielsweise ein Unternehmenselement revidiert wird,
werden die abhängigen Standorte benachrichtigt. Erst wenn je
doch die Veränderungen tatsächlich in einen Standort gezogen
werden, werden die zu diesem Standort gehörigen Zonen über
die Veränderungen benachrichtigt. Als Resultat kann der Ver
öffentlicher, das heißt die Datenbank, welche die Masterkopie
dieses Konfigurationselements speichert, verfolgen, ob ein
Abonnent die neueste Revision eines Elements genommen hat,
und diese Information kann verwendet werden, um die Veröf
fentlicher/Abonnentenbeziehung neu zu synchronisieren, wenn
eine der Datenbanken aus der Sicherungskopie wieder aufgebaut
werden muß.
Ferner versteht sich, daß dann, wenn ein Abonnent Veränderun
gen nicht abholt, dies zu Unterschieden in der Konfigurati
onshierarchie in niedrigeren Ebenen in der Konfigurationsda
tenbankhierarchie führen kann. Wenn beispielsweise das Unter
nehmenssystem 184 die Standorte 180 und 182 von Fig. 6 über
eine Veränderung benachrichtigt und wenn der Standort_2 182
diese Veränderung abholt, während der Standort_1 180 dies
nicht tut, so ist die Konfigurationshierarchie, die an den
Standorten 180 und 182 zu betrachten ist, verschieden. Wenn
ferner der Standort_2 182 die Veränderung abholt, wird eine
Veränderungsmitteilung an die Abonnenten in der Zone_C 176
gesendet, welche diese Veränderungen abholen können oder zu
mindest wissen, daß eine Veränderung aufgetreten ist. Die
Abonnenten in der Zone_A 172 und Zone_B 174 wissen jedoch
nichts von der Veränderung, da der Standort_1 180 die Verän
derung nicht abgeholt hat und daher Zone_A 172 und Zone_B 174
die Veränderungen nicht abholen können. In diesem Fall ist
die Konfigurationshierarchie, die in den Zonen 172 und 174
verfügbar ist, anders als die, die in der Zone 176 verfügbar
ist. Auf Wunsch kann eine Konfigurationsanwendung vorgesehen
werden, welche die Liste von stromaufwärts und stromabwärts
verlaufenden Abhängigkeiten anzeigt, um dem Benutzer zu er
leichtern zu erkennen, was hinsichtlich Veränderungen ge
schieht. Wenn der Benutzer versucht, ein Element abzuholen,
kann die Konfigurationsanwendung mangelnde Übereinstimmungen
hinsichtlich einer stromaufwärts verlaufenden Revision erfas
sen und den Benutzer fragen, ob diese Elemente auch abgeholt
werden sollten.
Unter Bezug auf Fig. 7 bis 15 wird ein System für den effi
zienten Zugriff und die effiziente Verteilung von Daten von
einer Datenbank innerhalb des Prozeßsteuersystems beschrie
ben. Allgemein ausgedrückt nutzt das Datenbankzugriffssystem
einen gemeinsam genutzten Cache, um in der Datenbank gespei
cherte Daten für einen oder mehrere Abonnenten (auch als Cli
ents bezeichnet) dieser Daten zu veröffentlichen und Mittei
lungen über Aktualisierungen oder Veränderungen an die Abon
nenten oder Clients abzugeben, wenn Veränderungen an den Da
ten innerhalb der Datenbank auftreten. Es versteht sich, daß
das Datenbankzugriffssystem, das hierin beschrieben wird, in
jeder der Datenbanken innerhalb eines Prozeßsteuersystems
verwendet werden kann, wie etwa jeder der Konfigurationsda
tenbanken 30 und 54 in Fig. 1, jeder der Master-Konfigura
tionsdatenbanken von Fig. 3 bis 5 oder jeder der Konfigura
tionsdatenbanken von Fig. 6. Entsprechend kann der Abonnent
oder Client der Daten in einer Datenbank, auf die zugegriffen
wird, jede andere Konfigurationsdatenbank, jede Konfigurati
onsanwendung, die in einer beliebigen Benutzerschnittstelle
innerhalb des Systems ausgeführt wird, oder jede andere An
wendung sein, welche die Konfigurationsdaten benutzt, und
diese Clients können mit der Datenbank, auf die zugegriffen
wird, beispielsweise unter Verwendung einer direkten bzw.
Hochgeschwindigkeitskommunikationsverbindung, einer langsamen
bzw. mit niedriger Bandbreite arbeitenden Kommunikationsver
bindung oder einer nicht kontinuierlichen Kommunikationsver
bindung verbunden sein. So können beispielsweise die in Fig.
7 bis 5 beschriebenen Clients in jeder der Zonen oder an je
dem der Standorte von Fig. 1 und 3 bis 6 angeordnet sein.
Allgemein ausgedrückt kommuniziert jeder Client mit einem Da
tenbankserver, der mit einer Konfigurationsdatenbank verbun
den ist, die die Konfigurationskomponenten speichert, welche
der Client abonniert. Am Beginn des Abonnierungsprozesses
wird ein Clientthread innerhalb des Datenbankservers für je
den verschiedenen Client geschaffen, der Verbindung zu der
Konfigurationsdatenbank hat, und dieser Thread bietet Zugang
zu einer oder mehreren bestimmten Komponenten innerhalb der
Konfigurationsdatenbank. Anschließend werden Veränderungen an
den Komponenten innerhalb der Konfigurationsdatenbank erkannt
und Mitteilungen über diese Veränderungen und nach Wunsch die
Veränderungen selbst werden zu jedem Client zurückgesendet,
der diese Konfigurationskomponenten abonniert hat. Wenn ein
Client das Abonnement dieser Konfigurationskomponente löst,
werden keine Mitteilungen über Veränderungen für diese Kompo
nente an den Client gesendet. Ein Client kann auch einen Cli
entthread verwenden, um die Komponente zu verriegeln, zu re
servieren, zu übertragen oder anderweitig Veränderungen daran
vorzunehmen.
Es versteht sich, daß die Verwendung des Begriffes "Thread"
sich auf einen Verarbeitungspfad oder einen Verarbeitungsvor
gang bezieht, der von einem Prozessor innerhalb des Daten
bankservers ausgeführt wird, und eine bekannte Technik zur
Durchführung von Parallelverarbeitung darstellt. Allgemein
ausgedrückt, kann ein Prozessor mehrere Threads gleichzeitig
durch versetztes Bearbeiten von Tasks ausführen, die zu den
verschiedenen Threads gehören, die durchgeführt werden. Bei
spielsweise kann der Prozessor in dieser Reihenfolge den er
sten Schritt, der zu einem ersten Thread gehört, den ersten
Schritt, der zu einem zweiten Thread gehört, den ersten
Schritt, der zu einem dritten Thread gehört, anschließend den
zweiten Schritt, der zu dem ersten Thread gehört, den zweiten
Schritt, der zu dem zweiten Thread gehört, den zweiten
Schritt, der zu dem dritten Thread gehört etc. ausführen.
Threads können hinzugefügt oder entfernt werden, ohne daß das
Auswirkungen auf andere Threads hat, die ausgeführt werden.
Threads können mit anderen Threads unter Verwendung von Be
nachrichtigungen oder Mitteilungen zwischen den Threads kom
munizieren. Auch können Daten, die von verschiedenen. Threads
gespeichert und verwendet werden, für einen Thread lokal
sein, das heißt nur dem Thread bekannt oder durch den Thread
zugreifbar sein, welcher die Daten geschaffen oder gespei
chert hat.
Fig. 7 zeigt ein Blockdiagramm eines Konfigurationsdaten
bankkommunikationssystems 200, das Abonnentenbeziehungen zwi
schen mehreren Clients umsetzt. Eine Konfigurationsdatenbank
enthält einen Datenbankserver 202, der zwischen einer Konfi
gurationsdatenbank 203 und mehreren Clients 206 bis 208 in
Kommunikationsverbindung steht. Die Konfigurationsdatenbank
203 ist so dargestellt, daß sie zwei Datenspeicher 210 und
212 enthält, von welchen jeder eine Konfigurationskomponente
speichert, die durch einen oder mehrere der Clients 206 bis
208 abonniert ist. Während die Datenbank 203 so dargestellt
ist, daß sie zwei Datenspeicher 210 und 212 hat, versteht
sich, daß die Datenbank 203 mehrere oder andere Datenspeicher
enthalten kann, wobei zur besseren Verständlichkeit der Dar
stellungen nur zwei gezeigt sind. Ferner versteht es sich,
daß jede Anzahl von Clients unter der Benutzung des Servers
202 auf die Datenbank 203 zugreifen kann. Auch kann jeder Da
tenspeicher 210 und 212 zu einer anderen physischen Datenbank
gehören, so daß ein Server verwendet werden kann, um Zugriff
auf mehr als eine Datenbank zu gewähren.
Die Clients 206 bis 208 kommunizieren mit dem Server 202 über
Kommunikationsverbindungen 213, bei denen es sich um direkte
Hochgeschwindigkeitsverbindungen wie z. B. eine Ethernetver
bindung handeln kann oder welche langsame, mit niedriger
Bandbreite arbeitende oder nicht permanente Verbindungen sein
können, wie z. B. Satellitenverbindungen, zelluläre Verbindun
gen, Modemverbindungen etc. Jede erste Anforderung einer Kon
figurationskomponente durch einen der Clients 206 bis 208 er
stellt einen Clientthread innerhalb des Servers 202 und die
ser Clientthread wird verwendet, um den Clients 206 bis 208
die angeforderten Komponenten aus dem entsprechenden Daten
speicher 210 und/oder 212 unter Verwendung eines gemeinsam
genutzten Cache 214 innerhalb des Servers 202 zur Verfügung
zu stellen, wie weiter unten detailliert beschrieben wird.
Ein Clientthread kann auch verwendet werden, um Veränderungen
in die Datenspeicher 210 und 212 zu schreiben, Komponentenda
ten hinzuzufügen oder Komponentendaten aus der Datenbank 203
zu löschen und eine Verriegelung von Komponentendaten inner
halb der Datenspeicher 210 und 212 auszuführen.
Allgemein ausgedrückt errichtet der gemeinsam genutzte Cache
214 ein Datenspeicherobjekt, das als Lightweight bezeichnet
wird, für jedes der verschiedenen Datenelemente innerhalb der
Datenbank 203, welche zu einem bestimmten Zeitpunkt durch ei
nen der Clients 206 bis 208 abonniert werden. Nur ein
Lightweight muß für jede Konfigurationskomponente innerhalb
der Datenbank 203 geschaffen werden und die Clientthreads für
alle Clients, die diese Konfigurationskomponente abonnieren,
greifen auf dasselbe Lightweight zu. Somit wird für das Sy
stem von Fig. 7 ein Lightweight innerhalb des gemeinsam ge
nutzten Cache 214 für jede der Konfigurationskomponenten in
nerhalb der Datenspeicher 210 bis 212 geschaffen, wenn wenig
stens einer der Clients 206 und 208 die Komponente in dem Da
tenspeicher 210 abonniert und mindestens einer der Clients
206 bis 208 die Komponente in dem Datenspeicher 212 abon
niert. Wenn jeder der Clients 206 bis 208 verschiedene Konfi
gurationskomponenten abonniert, enthalten die Threads für je
den Client verschiedene Lightweights, die mit verschiedenen
Datenspeichern innerhalb der Konfigurationsdatenbank 203 ver
bunden sind. Wenn jedoch mehr als ein Client dieselbe Kompo
nente innerhalb der Datenbank 203 abonniert, verwenden die
Threads für diese Clients dieselben Lightweights innerhalb
des gemeinsam genutzten Cache 114. Aus diesem Grunde sind die
Lightweights innerhalb des gemeinsam genutzten Cache nicht an
einen Thread gebunden.
Allgemein wird jedesmal dann, wenn ein erster Client zuerst
eine Komponente innerhalb der Datenbank 203 abonniert, ein
Lightweight für diese Konfigurationskomponente innerhalb des
gemeinsam genutzten Cache 214 geschaffen und dieses
Lightweight liest und speichert eine Kopie der Konfigurati
onskomponente aus der Datenbank 203. Anschließend wird bei
jedem anderen Client, der dieselbe Konfigurationskomponente
abonniert, dessen Clientthread mit demselben Lightweight ver
bunden, was bedeutet, daß der zweite, dritte, etc. Client,
der diese Konfigurationskomponente abonniert, die Komponente
aus dem Lightweight anstatt aus der Konfigurationsdatenbank
203 lesen kann, was die Anzahl der Lesevorgänge aus der Kon
figurationsdatenbank 203 reduziert.
Der in Fig. 7 gezeigte Datenbankserver 202 enthält drei Cli
entthreads 216, 217 und 218, welche verschiedene Lese-
/Schreibaktivitäten für die Clients 206, 207 und 208 jeweils
durchführen, und zwei Mitteilungsthreads 220 und 222, welche
die Benachrichtigungsaktivitäten bezüglich der Clientthreads
216, 217 und 218 ausführen. Allgemein ausgedrückt benutzt je
des Clientthread 216, 217 und 218 Serverkomponentenobjekte
226, 227 und 228 jeweils zur Kommunikation mit den Clients
durch die Kommunikationsverbindungen 230. Die Serverkomponen
tenobjekte innerhalb eines bestimmten Clientthread kommuni
zieren mit verschiedenen Lightweights innerhalb des gemeinsam
genutzten Cache 214 für jede verschiedene Komponente, auf die
durch den Client zugegriffen wird, und führen diese Kommuni
kation unter Verwendung eines Komponentendatenwrappers, der
zu jedem derartigen Lightweight gehört. Jeder Komponentenda
tenwrapper steuert den Zugriff zu einem zugehörigen
Lightweight und ist durch mehr als einen Clientthread zu
greifbar.
In dem System von Fig. 7 abonniert der Client 216 die Kompo
nenten innerhalb der Datenspeicher 210 und 212, der Client
207 abonniert die Komponente innerhalb des Datenspeichers 210
und der Client 208 abonniert die Komponente innerhalb des Da
tenspeichers 212. Wie Fig. 7 zeigt, verwendet der Client
thread 216 für den Client 206 eines der Serverkomponentenob
jekte 226 zur Kommunikation mit einem ersten Komponentenda
tenwrapper 232, welcher wiederum mit einem Lightweight 234
verbunden ist, der mit dem Datenspeicher 210 kommuniziert.
Nach dem Einrichten kopiert das Lightweight 234 die Daten in
nerhalb des Datenspeichers 210 und macht diese Daten für je
den Client, der diese Daten abonniert, zugänglich. Eines der
Serverkomponentenobjekte 226 des Clientthreads 216 steht auch
mit einem Komponentendatenwrapper 240 in Kommunikation, wel
cher wiederum mit einem Lightweight 242 verbunden ist, das
mit dem Datenspeicher 212 kommuniziert. Entsprechend kopiert
nach dem Einrichten das Lightweight 242 die Daten aus dem Da
tenspeicher 212 und macht diese Daten für jeden Client, der
diese Daten abonniert, zugänglich.
Der Clientthread 217 für den Client 207 verwendet das Server
komponentenobjekt 227 zur Kommunikation mit dem Komponenten
datenwrapper 232 und somit mit dem Lightweight 234, um da
durch auf die Daten innerhalb des Lightweights 234 zuzugrei
fen, das heißt die Daten in dem Datenspeicher 210. Anderer
seits verwendet der Clientthread 218 für den Client 208 die
Serverkomponente 228 zur Kommunikation mit dem Komponentenda
tenwrapper 240, um auf die Daten in dem Lightweight 242 zuzu
greifen, die zu dem Datenspeicher 212 gehören. Somit abonnie
ren in dieser Konfiguration die Clients 206 und 207 dieselbe
Konfigurationskomponente und als Resultat haben beide Clients
206 und 207 Zugriff auf das Lightweight 234 für diese Kompo
nente. Entsprechend abonnieren die Clients 206 und 208 die
selbe Konfigurationskomponente und haben beide Zugriff auf
das Lightweight 242 für diese Komponente. Als Resultat werden
die Lightweights 234 und 242 jeweils von zwei Clientthreads
gemeinsam genutzt und ermöglichen die gemeinsame Nutzung von
Daten innerhalb des gemeinsam genutzten Cache 214 durch ver
schiedene Clients.
Wie noch detaillierter erläutert wird, erstellt der Server
202 die Serverkomponentenobjekte, die Komponentendatenwrap
perobjekte und die Lightweights, um einen Clientthread zu
schaffen oder zu erweitern, wenn ein Client eine Konfigurati
onskomponente innerhalb der Datenbank 203 abonniert. Nach der
Erstellung werden die Clientthreads 216, 217 und 218 von den
Clients verwendet, um Lesevorgänge aus und Schreibvorgänge in
die Serverkomponentenobjekte 226, 227 und 228 durchzuführen,
welche wiederum Lesevorgänge in dem bzw. aus dem gemeinsam
genutzten Cache 214 über die Komponentendatenwrapper und die
darin geschaffenen Lightweights durchführen. Der gemeinsam
genutzte Cache 214 führt Lesevorgänge aus der und Schreibvor
gänge in die Konfigurationsdatenbank 203 nach Erfordernis
durch. Während für jeden Client ein anderer Clientthread ge
schaffen wird, kann jeder Clientthread ein oder mehrere Abon
nements von Komponentendaten für einen Client handhaben. All
gemein wird für jedes Abonnement einer Komponente durch einen
Client ein anderes Serverkomponentenobjekt geschaffen.
Der Mitteilungsthread 220 erfaßt Veränderungen, die in der
Datenbank 203 erfolgt sind, und erfaßt insbesondere Verände
rungen, die an den Datenspeichern 210 und 212 durchgeführt
wurden, für welche Lightweights geschaffen wurden, indem der
Status einer Veränderungsliste 244 geprüft wird, die inner
halb der Datenbank 203 geführt wird. Wenn eine Veränderung
durchgeführt wurde, veranlaßt der Mitteilungsthread 220, daß
eine Mitteilung an jeden der Clientthreads gesendet wird,
welche die veränderte Komponente, an der die Veränderung auf
getreten ist, abonnieren. Jeder dieser Clientthreads kann an
schließend einen Client, der das entsprechende Serverkompo
nentenobjekt für diesen Clientthread benutzt, benachrichti
gen. Die Benachrichtungsmitteilung, die dem Client gesendet
wird, kann die neuen Komponentendaten enthalten oder den Cli
ent einfach benachrichtigen, daß neue Daten existieren und
daß der Client einen manuellen Abhol- oder Lesevorgang dieser
Daten über den Clientthread, der für die veränderte Konfigu
rationskomponente geschaffen wurde, durchführen muß. In ähn
licher Weise erfaßt der Laufzeitthread 222 bestimmte, an dem
Prozeßsteuersystem durchgeführte Veränderungen, die von einem
beliebigen Laufzeitserver 246 durchgeführt wurden, und be
nachrichtigt die Clientthreads, die Komponenten abonnieren,
welche mit den veränderten Daten in Verbindung stehen, über
die Veränderung.
Allgemein ausgedrückt wird der Zugriff auf Daten innerhalb
der Konfigurationsdatenbank 203 auf der Basis Komponente per
Komponente durchgeführt. Jede Komponente kann ein einzelnes
Element innerhalb einer Konfigurationsdatenbank sein, wie
beispielsweise ein Bereich, eine Steuereinrichtung, eine Ein
richtung, ein Steuermodul etc., oder kann wenn gewünscht ein
Baum von Elementen sein. Ferner versteht sich, daß jede Kom
ponente eine übergeordnete bzw. Parent-Komponente sein kann
und eine oder mehrere untergeordnete bzw. Chhild-Komponenten
haben kann, die zu dieser gehören, und/oder jede Komponente
eine untergeordnete Komponente einer übergeordneten Komponen
te sein kann. So kann beispielsweise ein Bereich eine überge
ordnete Komponente mit einer Anzahl von untergeordneten Kom
ponenten sein, die bestimmte Bereiche angeben. Jeder bestimm
te Bereich kann eine übergeordnete Komponente mit untergeord
neten Komponenten sein, welche die Steuereinrichtungen, die
Benutzerschnittstellen, Steuermodule etc. innerhalb eines be
stimmten Bereichs bezeichnen.
Fig. 8 zeigt einen Objektplan für die Objekte, die verwendet
werden, um das Kommunikationssystem von Fig. 7 mit dem ge
meinsam genutzten Cache umzusetzen. Im einzelnen hat ein Cli
ent 300, bei dem es sich um einen beliebigen Client handeln
kann, ein Clientkomponentenobjekt 301, das beispielsweise je
der Teil von Konfigurationsdaten sein kann, auf den durch den
Client für einen beliebigen Zweck zugegriffen wird bzw. der
abonniert ist, beispielsweise zur Darstellung durch einen Be
nutzer in einer Konfigurationshierarchie wie der in Fig. 2
gezeigten. Die Clientkomponente 301 kann ein übergeordnetes
Objekt bzw. ein Parentobjekt sein, zu dem ein oder mehrere
untergeordnete Komponenten bzw. Childrenkomponenten gehören,
wie durch den Rückkopplungspfad an der Clientkomponente 301,
der einen Punkt auf der Seite der untergeordneten Komponenten
hat und das Fehlen eines Punkten auf der Seite der übergeord
neten Komponente zeigt. In Fig. 8 bezeichnet die Verwendung
eines Punktes eine Eins-zu-eins-Beziehung bzw. eine Eins-zu-
mehreren-Beziehung, während das Fehlen eines Punktes exakt
eine Eins-zu-eins-Beziehung bezeichnet. Wie bei dem Client
komponentenobjekt 301 dargestellt, kann jede übergeordnete
Clientkomponente eine oder mehrere untergeordnete oder unter
geordnete Clientkomponenten haben, während jede untergeordne
te oder untergeordnete Clientkomponente nur eine direkte
übergeordnete Clientkomponente haben kann.
Jede Clientkomponente 301 ist mit einem Smart Proxy 302 ver
bunden, der zu dieser Clientkomponente an dem Client 300 zu
gehörig ist. Der Smart Proxy 302 ist für die Abwicklung der
Kommunikation für die Clientkomponente 301 über eine Kommuni
kationsverbindung 304 zuständig. Insbesondere ist der Smart
Proxy ein Verteilobjekt, das Clientanfragen empfängt, die ei
ne Komponente betreffen, über die Kommunikationsverbindung
einen Server 306 anruft, um diese Anfragen dem Server 306
mitzuteilen, Aktualisierungen empfängt, im Cache gespeicherte
Daten und Mitteilungen, die von dem Server 306 gesendet wer
den, speichert, und diese Daten an das Clientkomponentenob
jekt 301 weiterleitet. Selbstverständlich führt der Smart
Proxy 302 die Operationen aus, die erforderlich sind, um Kom
munikation über die Kommunikationsverbindung 304 durchzufüh
ren, in jeder gewünschten Weise unter Verwendung jeder ge
wünschten Kommunikationstechnik, wie beispielsweise unter
Verwendung der verzögerten Bestätigungsroutine, die in der
US-Patentanmeldung mit dem Titel "Deferred Acknowledgment
Communications and Alarm Management" beschrieben ist, die
vorstehend angeführt wurde. Die Kommunikationsverbindung 304
kann jede gewünschte Kommunikationsverbindung sein, darunter
beispielsweise eine langsame oder mit niedriger Bandbreite
arbeitende Verbindung, beispielsweise eine Satelliten-, zel
luläre-, Internet- oder andere gemeinsam genutzte Fernnetz
werkverbindung, oder könnte eine nicht permanente Verbindung
sein, wie beispielsweise eine Modemverbindung, oder könnte
eine direkte Verbindung oder Hochgeschwindigkeitsverbindung,
wie etwa eine dezidierte Ethernet-Verbindung sein, falls dies
erwünscht ist.
Der Server 306 enthält Serverkomponentenobjekte 308, die für
die Kommunikation mit dem Smart Proxy 302 eines Client über
die Kommunikationsverbindung 304 verantwortlich sind. Jede
Serverkomponente 308 ist für die Aufzeichnung und das Halten
mindestens eines Teils der Konfigurationshierarchie verant
wortlich, auf die von einem bestimmten Client zugegriffen
oder abonniert wird, um eine Schnittstelle zu bieten, um auf
Eigenschaften einer Konfigurationskomponente innerhalb einer
Konfigurationsdatenbank zuzugreifen, und zum Empfangen von
Aktualisierungsereignissen und Weiterleiten dieser Ereignisse
zu dem Smart Proxy 302 für einen Client. Wie Fig. 8 zeigt,
kann eine Serverkomponente 308 mit anderen Serverkomponenten
durch eine Parent-Child-Beziehung, das heißt eine Beziehung
eines übergeordneten Elements zu einem untergeordneten Ele
ment, verbunden sein, und diese Parent-Child-Beziehung re
flektiert die Parent-Child-Beziehung, die für die zugehörigen
Clientkomponenten 301 geschaffen wurde. Insbesondere gibt
diese Beziehung die Clienthierarchie, d. h. die Konfigurati
onshierarchie, welche der Client abonniert hat, wieder. Jede
Serverkomponente 308 kann mit genau einem Komponentendaten
wrapper 310 verbunden sein und an diesem interessiert sein,
bei dem es sich um ein Objekt handelt, welches innerhalb des
gemeinsam genutzten Cacheabschnittes des Servers 306 errich
tet wird. Wie von Fig. 8 angegeben, kann jedoch ein Kompo
nentendatenwrapper 310 mit vielen Serverkomponenten für ver
schiedene Clients oder Clientthreads verbunden sein.
Der Komponentendatenwrapper 310 ist eine Schnittstelle zu ge
meinsam genutzten Daten, das heißt Daten, die in dem gemein
sam genutzten Cache 214 von Fig. 7 von mehreren Clients oder
Clientthreads gemeinsam genutzt werden. Die Komponentendaten
wrapper 310 können Hierarchiebeziehungen aufzeichnen (und
sind ein übergeordneter Satz (Superset) von Clienthierar
chien, die von allen abonnierenden Clients betrachtet wer
den), können verweisende Serverkomponenten registrieren, kön
nen Serverkomponenten benachrichtigen, wenn Veränderungsvor
gänge erfaßt werden, können das Datum der letzten Modifikati
on aufzeichnen (das verwendet werden kann, um Ereignisse von
der Konfigurationsdatenbank zu akzeptieren oder zurückzuwei
sen) und können eine Verriegelung von gemeinsam genutzten Da
ten bewirken. Ähnlich wie die Serverkomponente 308 kann der
Komponentendatenwrapper 310 mit anderen Komponentendatenwrap
pern in einer Parent-Child-Beziehung stehen bzw. mit diesen
verbunden sein, wobei diese Beziehung die Beziehung wieder
gibt, die für alle Serverkomponenten 308 und alle Clientkom
ponenten 301 geschaffen wird. Es versteht sich, daß jeder
Komponentendatenwrapper 310 mit zahlreichen Serverkomponenten
308 verbunden sein kann, da alle Clientthreads, die auf eine
bestimmte Konfigurationskomponente zugreifen, durch denselben
Komponentendatenwrapper 310 gehen. Der Komponentendatenwrap
per 310, der von einem Komponentendatenwrappergenerator 312
geschaffen wird, wenn ein erster Client erstmals ein Element
innerhalb der Konfigurationsdatenbank abonniert, verfolgt
allgemein, welche Serverkomponenten 308 bestimmte Komponenten
innerhalb der Konfigurationsdatenbank abonnieren und arbeitet
so, daß er jede der abonnierenden Serverkomponenten 308 über
Veränderungen dieser Daten benachrichtigt.
Jeder Komponentendatenwrapper 310 ist mit höchstens einem
Lightweightobjekt 314 verbunden bzw. enthält ein solches, das
eine Kopie der Komponentendaten in der Konfigurationsdaten
bank speichert, welche eine oder mehrere Serverkomponenten
308 abonnieren. Mit anderen Worten wird ein Komponentendaten
wrapper 310 zwischen eine oder mehrere Serverkomponenten 308
und ein einzelnes Lightweight 314 eingefügt, um den Zugriff
auf das Lightweight 314 durch mehrere Serverkomponenten 308
abzuwickeln. Allgemein ausgedrückt ist das Lightweight 314
ein Aufbewahrungsort für Daten, die von den Serverkomponenten
308 gemeinsam genutzt werden, und wird verwendet, um sich mit
dem Mitteilungsthread 220 von Fig. 7 für Aktualisierungsbe
nachrichtigungen abzustimmen, welche Veränderungen betreffen,
die an der Konfigurationsdatenbank 203 von Fig. 7 durchge
führt werden.
Der Komponentendatenwrappergenerator 312 ist verantwortlich
für das Erhalten/Schaffen von Komponentendatenwrappern 310
und Lightweights 314. Wenn ein Client angibt, daß er eine
Komponente in der Konfigurationsdatenbank 203 abonnieren
will, prüft der Komponentendatenwrappergenerator 312 zu
nächst, ob ein Komponentendatenwrapper 310 für diese Kompo
nente bereits geschaffen wurde. Wenn dies der Fall ist, ver
bindet der Komponentendatenwrappergenerator 312 den Client
thread mit dem Komponentendatenwrapper 310 für diese Kompo
nente. Wenn dies nicht der Fall ist, schafft der Komponenten
datenwrappergenerator 312 einen neuen Komponentendatenwrapper
310 und ein Lightweight 314, welche veranlassen, daß die an
geforderte Information von der Konfigurationsdatenbank 203 in
das Lightweight 314 geladen wird, und schafft oder erweitert
den Thread für den Client, der diesen neuen Komponentendaten
wrapper 310 und das zugehörige Lightweight 314 nutzt. Wenn
der Komponentendatenwrappergenerator 312 einen neuen Wrapper
310 schafft, weist der Komponentendatenwrappergenerator 312
dem Wrapper 310 ein einzigartiges unveränderliches Kennzei
chen zu. Dieses Kennzeichen wird zu den verweisenden Server
komponenten 308 und ihren entsprechenden Clientkomponenten
301 weitergeleitet, was es erlaubt, eine Gruppe von Komponen
ten oder einzelne Komponenten eindeutig zu identifizieren,
was wiederum viele schwierige Umbenennungsprobleme vermeidet
und eine effizientere Überwachung einer Liste von Identifika
tionen über eine langsame Kommunikationsverbindung bietet,
wenn beispielsweise ein gesamter Baum oder Zweig eines Baumes
von einem Client angefordert wird.
Ein Verriegelungsmanager 316 ermöglicht es jedem Komponenten
datenwrapper 310, den Zugriff auf seine zugehörigen
Lightweights 314 durch verschiedene Clients zu steuern. Das
Verriegeln eines Lightweights 314 kann das Verriegeln eines
oder mehrerer anderer Lightweights verursachen, so daß bei
spielsweise das Verriegeln eines Lightweights, das übergeord
nete Kompontendaten speichert, automatisch die Verriegelung
von Lightweights verursacht, die untergeordnete Komponenten
für diese übergeordnete Komponente enthalten. In ähnlicher
Weise kann jedes Lightweight 314 automatisch bei Verriegelung
eines anderen Lightweights verriegelt werden, so daß ein
Lightweight, das eine untergeordnete Komponente enthält, ver
riegelt werden kann, wenn das Lightweight, das die übergeord
nete Komponente für diese untergeordnete Komponente enthält,
verriegelt wird. Auf diese Weise kann der Verriegelungsmana
ger 316 veranlassen, daß ein Komponentendatenwrapper 310 sein
zugehöriges Lightweight 314 verriegelt, wenn ein Lesevorgang
aus oder ein Schreibvorgang in dieses Lightweight innerhalb
eines bestimmten Clientthreads durchgeführt wird und die Ver
riegelung dieses Lightweights kann automatisch die Verriege
lung von anderen Lightweights verursachen, wie etwa
Lightweights, die untergeordnete Komponenten enthalten, die
sich auf das Lightweight beziehen, das verriegelt wurde.
Ferner verwendet jedes Lightweight 314 eines oder mehrere
transaktionale Speicherobjekte (XMs) 318, um Komponentenei
genschaften aus der bzw. in die Konfigurationsdatenbank 203
von Fig. 7 unter Verwendung eines Kontextspeichers zu lesen
oder zu schreiben. Ein XM 318 wird jedesmal dann gestartet,
wenn ein Lightweight 314 einen Lesevorgang oder einen
Schreibvorgang an der Konfigurationsdatenbank 203 durchführen
muß. Das XM 318 schafft einen Zeiger in den Kontextspeicher
(der lokal für den Clientthread ist), der verwendet wird, um
diesen lesen oder schreiben zu lassen, und das XM 318 veran
laßt den Lesevorgang aus der oder den Schreibvorgang in die
Konfigurationsdatenbank 203 unter Verwendung des Kontextspei
chers. Das XM 318 kann ferner verwendet werden, um Datenban
kobjekte innerhalb der Datenbank 203 zu schaffen/zu löschen
und die Registrierung eines Benachrichtigungsinteresses in
der Konfigurationsdatenbank 203 zu entfernen. Sobald der ent
sprechende Lesevorgang oder Schreibvorgang für ein
Lightweight 314 durchgeführt wurde, wird das XM 318 freigege
ben. Die in dem Kontextspeicher gespeicherten Daten sind je
doch noch vorhanden und der Zeiger zu diesem Speicher wird in
dem lokalen Threadsspeicher gespeichert, um bei Bedarf später
verwendet zu werden. Die Verwendung von XMs ist ein Standard
vorgang in Objektdatenbankmanagern und wird daher hier nicht
weiter erläutert.
Eine Benachrichtigungsmaschine 320 stimmt sich mit jedem XM
318 ab und erfaßt Änderungen an jedem der Datenbankwerte in
nerhalb der Datenspeicherorte in der Konfigurationsdatenbank
203, auf die von den XMs 318 verwiesen wird. Die dortigen
Veränderungen können beispielsweise durch einen Client verur
sacht sein, der einen Schreibvorgang in der Konfigurationsda
tenbank 203 verursacht, einen Laufzeitprozeß oder einen ande
ren externen Prozess. Wenn die Benachrichtungsmaschine 320
eine Veränderung an den Datenbankelementen erfaßt, auf die
von einem der XMs 318 verwiesen wird, benachrichtigt die Be
nachrichtigungsmaschine 320 den Komponentendatenwrapper 310,
welcher das Lightweight 314 aufweist, das zu diesem XM 318
gehört, welches wiederum alle Clients benachrichtigt, welche
die Komponente abonniert haben, daß eine Veränderung durchge
führt wurde und daß neue Werte für die Komponente verfügbar
sind. Um diese Operation auszuführen, verwendet die Benach
richtigungsmaschine 320 ein Komponentendatenregister (auch
als ein Wrapperplan bezeichnet) 322, bei dem es sich um einen
Plan handelt, in dem jeder Komponentendatenwrapper 310 mit
einem Datenbankort verzeichnet ist, auf den von einem XM 318
verwiesen wird. Genauer ausgedrückt ist das Komponentendaten
register 322 eine Nachschlagtabelle, die Komponentendaten
wrapper 310 mit Benachrichtungscookies oder Identifikations
kennzeichen in Verbindung setzt, die als ein Resultat der
Operation der XMs 318, welche auf die Datenbank 203 zugrei
fen, geschaffen werden. Gelegentlich werden diese Identifika
tionskennzeichen auch als die "magischen Zahlen" bezeichnet,
und allgemein ausgedrückt bezeichnen diese Identifikations
kennzeichen einen Ort oder identifizieren eine Komponente,
die in der Datenbank 203 gespeichert ist. Die Benachrichti
gungsmaschine 320 erhält eine Liste von Aktualisierungsereig
nissen, die mit jedem der Datenbankorte in Beziehung stehen,
die den magischen Zahlen zugehörig sind, und verwendet das
Komponentendatenregister 322, um die Komponentendatenwrapper
310 zu finden, die jeder Komponente zugeordnet sind, für wel
che eine Veränderung aufgetreten ist. Als Resultat ist die
Benachrichtigungsmaschine 320 ein Ereignisgenerator, der pe
riodisch eine Veränderungsliste von der Konfigurationsdaten
bank 203 erhält und Veränderungsereignisse an die Komponen
tendatenwrapper 310 abgibt, für welche Veränderungen aufge
treten sind.
Allgemein ausgedrückt registriert jeder Komponentendatenwrap
per 310 alle XMs, die zu seinem Lightweight gehören, in dem
Komponentendatenregister 322, wenn Clientthreads geschaffen
werden, um dadurch Veränderungsbenachrichtigungen zu erhal
ten. Im Gegenzug erhalten die Datenkomponentenwrapper 310 ein
einzigartiges Cookie für jede Registrierung und diese Cookies
werden in dem Komponentendatenregister bzw. dem Wrapperplan
322 gespeichert. Ansprechend auf eine Veränderungsbenachrich
tigung zwingt ein Komponentendatenwrapper 310 sein zugehöri
ges Lightweight 314, einen neuen Ladevorgang von der Daten
bank durchzuführen, sofern erforderlich, und die Konfigurati
onshierarchie zu aktualisieren. Ferner sendet der Komponen
tendatenwrapper 310 Aktualisierungsmitteilungen zurück zu je
der der Serverkomponenten 308, die mit dem Komponentendaten
wrapper 310 in Beziehung stehen und welche auf diesen zugrei
fen, und die Serverkomponenten 308 werden anschließend mit
dem gemeinsam genutzten Cache, das heißt den Lightweights
314, neu synchronisiert. Schließlich senden die Serverkompo
nenten 308 eine Aktualisierungsmitteilung an die Clientskom
ponenten 301, welche eine Neusynchronisierung mit den Server
komponenten 308 durchführen.
In Fig. 9 ist der Status des Datenbankservers 306 (bei dem
es sich um den Server 202 von Fig. 7 oder jeden der Daten
bankserver von Fig. 1, 3 bis 6 handeln kann) beim Startup
dargestellt, das heißt bevor ein Client Daten in der Konfigu
rationsdatenbank 325 (bei der es sich beispielsweise um die
Datenbank 203 von Fig. 7 oder jede der Konfigurationsdaten
banken von Fig. 1 und 3 bis 6 handeln kann) abonniert hat.
Der Server 306 enthält einen Pre-Start Thread 326, der keine
Serverkomponentenobjekte enthält, einen gemeinsam genutzten
Cache 327, der keine Komponentendatenwrapper oder
Lightweights hat, und einen leeren Datenbankkontextspeicher
328. Der gemeinsam genutzte Cache 327 des Servers 306 enthält
einen Komponentendatenwrappergenerator 312 und einen Verrie
gelungsmanager 316, der die Verriegelung von Komponenten, die
aus der Datenbank 325 ausgelesen werden, koordiniert. Wie
Fig. 9 zeigt, enthält ein Benachrichtigungsthread eine Benach
richtigungsmaschine 320, die Veränderungen erfaßt, die an Da
ten in der Datenbank 325 wie vorstehend beschrieben durchge
führt wurden, und ein Komponentendatenregister oder einen
Wrapperplan 322, der Datenkomponentenwrapper in dem gemeinsam
genutzten Dache 327 mit Orten in der Konfigurationsdatenbank
325 aufzeichnet. Da in dem gemeinsam genutzten Cache 327 kei
ne Datenwrapper existieren, ist der Wrapperplan 322 selbst
verständlich leer.
Entsprechend enthält ein Laufzeitthread eine Benachrichti
gungsmaschine 336, die Veränderungen erfaßt, die an bestimm
ten Teilen der Konfigurationsdaten von Laufzeitservices 338
durchgeführt wurden, bei welchen es sich um beliebige Servi
ces handeln kann, wie z. B. automatische Erfassungsservices
oder andere Anwendungen, die während der Laufzeit oder wäh
rend der Konfigurationsaktivitäten ablaufen, sowie einen Plan
340, der es ermöglicht, daß die Laufzeitbenachrichtigungsma
schine 336 Veränderungsmitteilungen an entsprechende Kompo
nentendatenwrapper in den Clientthreads sendet, die in dem
Server 306 ablaufen. Beim Startup erzeugt die Laufzeitbenach
richtigungsmaschine 336 eine Instanz eines Objektes, die als
Erfassung abläuft, um bestimmte Veränderungen in der Konfigu
ration des Prozeßsteuernetzwerks zu erfassen, wie z. B. das
Hinzufügen eines neuen Knotens oder das Hinzufügen von neuen
Einrichtungen (wie etwa außer Dienst gestellte Steuereinrich
tungen) innerhalb des Systems. In einer Ausführungsform fragt
die Benachrichtigungsmaschine 336 die Laufzeitservices 338,
bei welchen es sich um beliebige Laufzeitservices oder Anwen
dungen handeln kann, nach Listen von außer Dienst gestellten
Steuereinrichtungen und Fieldbuseinrichtungen ab. Der Plan
340 verweist allgemein auf einen Speicherort oder einen Spei
cherbereich, wo entsprechende Datenwrapper (nach deren Er
stellung) registriert sind, um Informationen zu empfangen,
die zu der Erstellung eines neuen Knotens, einer neuen Ein
richtung etc. innerhalb des Prozeßsteuersystems gehören.
Selbstverständlich müssen nicht alle Datenwrapper bei dem
Laufzeitthread registriert werden, sondern nur diejenigen
Wrapper, die zu Komponenten gehören, welche sich auf die neu
hinzugefügten Einrichtungen beziehen, wie etwa die in Fig. 2
dargestellte Komponente der außer Dienst gestellten Steuer
einrichtung. Beim Startup verweist der Plan 340 auf einen
Speicherort, an dem keine Wrapper registriert sind.
In Fig. 10 sind die Operationen des Servers 306 dargestellt,
wenn ein erster Client 342 Verbindung aufnimmt und eine Kom
ponente in der Konfigurationsdatenbank 325 abonniert. Im ein
zelnen läuft die Clientanwendung an, nimmt Verbindung mit dem
Server 306 über eine Kommunikationsverbindung 344 unter Ver
wendung eines Smart Proxy 346 auf, um eine Komponente 348 in
nerhalb der Konfigurationshierarchie anzufordern. Zu diesem
Zeitpunkt weist der Server 306 den Pre-Start-Clientthread 326
dem Client 342 zu und erstellt einen neuen Pre-Start-Client
thread (nicht dargestellt), der von dem nächsten Client zu
verwenden ist, der Verbindung mit dem Server 306 aufnimmt.
Typischerweise beginnt der Client 342 mit der Anforderung ei
nes Wurzelobjektes, wie etwa der Bereiche-Komponente. An die
sem Punkt wird in dem Server 306 eine Bereiche-Serverkompo
nente 350 geschaffen und die Bereiche-Serverkomponente 350
fordert die Bereiche-Komponente von dem Wrappergenerator 312
an. Der Wrappergenerator 312 erkennt, daß kein Komponentenda
tenwrapper (nachfolgend als "Wrapper" bezeichnet) für die Be
reiche-Komponente in dem gemeinsam genutzten Cache 327 ge
schaffen wurde und erstellt einen derartigen Wrapper 354 (ei
nen Bereiche-Wrapper), wobei der Wrapper 354 der Bereiche-
Serverkomponente 350 innerhalb des Clientthread 326 zugeord
net wird. Der Wrappergenerator 312 erstellt ein Lightweight
360, das alleine dem neu erstellten Wrapper 354 zugeordnet
ist und das mit dem Datenbank-"Standort"-KContext 362 für den
Clientthread verbunden ist. Der Standort-Kontext wird verwen
det, da die Bereiche-Wurzelkomponente angefordert wurde und
diese Komponente mit einem Standortobjekt in der Datenbank
325 im Zusammenhang steht. Zu dieser Zeit führt das
Lightweight 360 einen Aufruf in der Datenbank 325 betreffend
die Bereiche-Komponente durch, indem ein XM (nicht darge
stellt) erstellt wird. Das XM verweist auf einen Speicherort
in dem Kontextspeicher 328, der von dem Clientthread 326 zu
verwenden ist, und veranlaßt den Datenbankmanager, die Berei
che-Komponente auszulesen und die Komponentendaten in dem
Standort-Kontextspeicher 362 zu speichern. Anschließend wer
den die Daten in das Lightweight 360 geladen und das XM wird
freigegeben.
Während dieses Prozesses registrieren der Wrappergenerator
212 oder das XM den neugeschaffenen Bereiche-Wrapper 354 in
dem Wrapperplan 325 zur Benachrichtigung über Veränderungen,
wenn Veränderungen in dem Gegenstück in der Datenbank auftre
ten, in diesem Fall in der Bereiche-Komponente der Datenbank
325. Diese Registrierung ist durch die Linie 363 dargestellt.
Um diese Registrierung durchzuführen, wird ein eindeutiges
Identifizierungskennzeichen (ID) für die Kombination Wrap
per/Datenbankstandort geschaffen und dieses ID wird in eine
Registrierungsmitteilung gesetzt, die zu dem Benachrichti
gungsthread gesendet wird. Bei Verarbeitung der Registrie
rungsmitteilung fügt das Benachrichtigungsthread einen Ein
trag in den Wrapperplan 322 für den Bereiche-Wrapper 354 ein,
der durch das ID als Schlüssel gekennzeichnet ist. Dieser
Eintrag verbindet die magische Zahl, die dem XM zugehörig
ist, welches auf ein Objekt oder einen Ort in der Datenbank
325 verweist, mit dem Wrapper 354.
Nachfolgend wird die Bereiche-Komponente von dem Wrapper 354
zu der Serverkomponente 350 gesendet, die mit den Daten der
Bereiche-Komponente aktualisiert wird. Die Serverkomponente
350 sendet anschließend die Daten der Bereiche-Komponente an
das Smart Proxy 346 des Client 342, wo die Komponentendaten
an die Clientkomponente 348 abgegeben werden.
Anschließend überwacht der Benachrichtigungsthread Verände
rungen an der Bereiche-Komponente innerhalb der Datenbank
325, und sucht wenn Veränderungen durchgeführt werden, das ID
für den Wrapper, der zu dieser Komponente innerhalb der Da
tenbank 325 gemäß der Definition in dem Wrapperplan 322 ge
hört. Der Benachrichtigungsthread benachrichtigt anschließend
den Wrapper, in diesem Fall den Wrapper 354, über die Verän
derung. Falls erforderlich, aktualisiert der Wrapper 354 das
Lightweight 360, so daß es die Veränderung wiedergibt, indem
ein Auslesen der Datenbank 325 veranlaßt wird. Danach weist
der Wrapper 354 die Serverkomponente 350 über die Veränderung
an und die Serverkomponente 350 kann die neuen Daten für die
Bereiche-Komponente abfragen, welche neuen Daten aus dem
Lightweight 360 ausgelesen werden können. Danach benachrich
tigt die Serverkomponente 350 den Client 342 über die Verän
derung und der Client 342 kann die neuen Daten für die Berei
che-Komponente von der Serverkomponente 350 anfordern, so daß
die Veränderung in der Bereiche-Komponente entweder automa
tisch oder durch Benachrichtigung des Clients über die Verän
derung und Abwarten, bis der Client die neuen Komponentenda
ten abfragt, an die Clientkomponente 348 weitergegeben wird.
Während der Client 342 ein manuelles Abziehen der neuen Kom
ponentendaten aus der Serverkomponente 350 durchführen könn
te, wird nachfolgend zum Zweck der Erörterung angenommen, daß
neue Daten oder veränderte Daten automatisch zu einem Client
gesendet werden, während eine Veränderung erfaßt wird.
In ähnlicher Weise verwendet der Laufzeitbenachrichtigungs
thread die Benachrichtigungsmaschine 336, um bestimmte Verän
derungen zu erfassen, die in der Konfiguration des Prozeß
steuersystems basierend auf der Operation der Laufzeitservi
ces 338 durchgeführt wurden. Wenn eine bestimmte V 40303 00070 552 001000280000000200012000285914019200040 0002010049569 00004 40184eränderung
aufgetreten ist, beispielsweise das Hinzufügen eines Knotens
oder einer Einrichtung, sucht die Benachrichtigungsmaschine
336 den Speicherort, der für diese Veränderung von dem Plan
340 angegeben ist, um festzustellen, ob Wrapper eine Regi
strierung eingerichtet haben, um einen Hinweis auf die erfaß
te Veränderung zu erhalten. Wenn dies der Fall ist, sendet
die Benachrichtigungsmaschine 336 eine Ereignismitteilung an
den bzw. die registrierten Wrapper, welche diese Mitteilungen
in ähnlicher Weise verarbeiten können, in der Ereignismittei
lungen verarbeitet werden, die von der Benachrichtigungsma
schine 320 erzeugt wurden. Es versteht sich, daß ein Daten
wrapper, der Benachrichtigungen über Veränderungen erhalten
will, die von dem Laufzeitbenachrichtigungsthread erfaßt wur
den, eine Registrierung an dem Speicherort durchführt, der
für diese Veränderung von dem Plan 340 angegeben ist, in dem
beispielsweise das ID des Wrappers gespeichert wird, um die
Veränderungsbenachrichtigung an dem Speicherort zu erhalten,
wenn der Datenwrapper geschaffen wird.
Wie Fig. 11 zeigt, kann der Client 342 anschließend den
Wunsch haben, untergeordnete Elemente der Bereiche-Clientkom
ponente 348 zu laden. In diesem Fall ruft der Client 342 ei
nen Befehl zum Laden von untergeordneten Elementen und die
Bereiche-Wurzelkomponente auf und dieser Befehl wird durch
den Proxy 346 zu der Serverkomponente 350 und von dort zu dem
Bereiche-Lightweight 360 weitergeleitet. Das Bereiche-
Lightweight 360 fragt die Konfigurationsdatenbank 325 unter
Verwendung des Kontextspeichers 362 für den Clientthread 326
ab, um Informationen über die untergeordneten Komponenten für
Bereiche zu erhalten. Diese Daten werden zurückgegeben und
ein Lightweight und ein zugehöriger Datenwrapper werden an
schließend für jede untergeordnete Komponente geschaffen, die
zu der Bereiche-Komponente gehört. In Fig. 11 ist die Berei
che-Komponente so dargestellt, daß sie nur eine untergeordne
te Komponente enthält, die den Namen Area_A und die Beschrei
bung "Fred" trägt, und diese neuen untergeordneten Komponen
tendaten werden in einem neuen Lightweight 370 gespeichert.
Andere untergeordnete Bereiche-Komponenten könnten auch zu
der Bereiche-Komponente gehören und in diesem Fall würde für
jedes dieser untergeordneten Elemente zusammen mit den ande
ren oben beschriebenen Objekten ein neues Lightweight ge
schaffen.
Bei dem Erstellen des neuen Lightweight 370 schließt der Be
reichewrapper 354 (oder der Wrappergenerator 312) das neue
Bereiche-Lightweight 370 in einem separaten Wrapper 372 ein,
der mit dem Bereiche-Wrapper 354 als ein untergeordneter
Wrapper verbunden ist. Der Bereiche-Wrapper 354 führt die
neue Bereiche-Komponente auch zu der Serverkomponente 350 zu
rück. Das neue Lightweight 370 erstellt ein XM, um eine Regi
strierung in der Datenbank 325 über den Kontextspeicher 376
einzurichten, um spezifische Daten zu erhalten, die zu der
untergeordneten Bereich-Komponente gehören. Der Wrapper 372
oder das Lightweight 370 senden ferner eine Registrierungs
mitteilung an den Benachrichtigungsthread mit einer Liste der
neuen Wrapper-IDs (in diesem Fall ein Wrapper-ID) und der ma
gischen Datenbankzahlen (in diesem Fall eine neue magische
Zahl), die zu diesem gehören. Das neue ID wird in dem Wrap
perplan gespeichert, um den neuen Wrapper 372 anzuzeigen, wie
durch die Linie 378 dargestellt. Die magische Zahl, welche
den Ort der neuen untergeordneten Bereich-Komponente in der
Datenbank 325 angibt, wird ebenfalls an den Wrapperplan 322
abgegeben und für dieses ID gespeichert.
In der Zwischenzeit erzeugt die Bereiche-Serverkomponente 350
eine untergeordnete Bereich-Serverkomponente 380 für die neue
untergeordnete Bereich-Komponente und bettet dabei einen Zei
ger in der neuen untergeordneten Bereich-Serverkomponente 380
auf den Wrapper 372 ein, der für die untergeordnete Server
komponente 380 geschaffen wurde. Die Serverkomponente 350
sendet ebenfalls eine Liste von untergeordneten Komponenten
(in diesem Fall eine Liste mit einem Eintrag) über die Kommu
nikationsverbindung und den Proxy 346 an die Bereiche-
Clientkomponente 348 und die Bereiche-Clientkomponente 348
erzeugt eine untergeordnete Bereich-Clientkomponente und bet
tet einen Serverkomponentenbezug (auf die Serverkomponente
380) in der untergeordneten Bereich-Clientkomponente 382 ein,
um die Kommunikation zwischen der neuen untergeordneten Cli
ent-Komponente 382 und der neuen untergeordneten Serverkompo
nente 380 zu ermöglichen. Ein Smart Proxy 384 für die Client
komponente 382 wird anschließend geschaffen, was den Prozeß
der Erweiterung des Clientthread 326, um ein Abonnement für
eine neue untergeordnete Komponente innerhalb der Datenbank
325 einzuschließen, vollendet. Selbstverständlich würden die
selben Vorgänge für andere untergeordnete Komponenten einer
bestimmten Komponente stattfinden und der Clientthread 326
kann erweitert werden, um mehr als eine untergeordnete Kompo
nente zu abonnieren, wenn mehr als eine untergeordnete Kompo
nente bzw. mehr als ein Child vorhanden ist. Entsprechend
kann der Clientthread 326 weiter erweitert werden, indem un
tergeordnete Komponenten erhalten werden, die zu der neu
abonnierten untergeordneten Komponente 382 gehören oder indem
eine weitere Wurzelkomponente angefordert wird.
In Fig. 12 ist der Prozeß, in dem ein zweiter Client 386
dieselben Komponenten abonniert, die durch den ersten Client
342 abonniert wurden, im Detail beschrieben. Hier sind die
Benachrichtigungsthreads des Servers 306 aus Gründen der
Übersichtlichkeit nicht gezeigt. Insbesondere nimmt der zwei
te Client 386 mit dem Server 306 in ähnlicher Weise wie der
erste Client Verbindung auf und abonniert die Bereiche-
Komponente. Nach Herstellung der Verbindung mit dem Server
306 wird der zweite Client 386 einem zweiten Pre-Start-Thread
387 zugewiesen. In diesem Beispiel fragt der Client 386 die
Bereiche-Wurzelkomponente ab, welche eine Bereiche-Server
komponente 388 in dem zweiten Clientthread erstellt. Die Ser
verkomponente 388 fragt den Wrappergenerator nach einem Wrap
per für die Bereiche-Wurzelkomponente, und da der Wrapper 354
bereits in dem gemeinsam genutzten Cache 327 für die Berei
che-Wurzelkomponente existiert, sendet der Wrappergenerator
312 einen Zeiger auf den Wrapper 354 zurück. An diesem Punkt
fragt die Bereiche-Serverkomponente 388 den Wrapper 354 nach
den Bereiche-Wurzelkomponentendaten ab, die aus dem
Lightweight 360 ausgelesen werden, das bereits für den ersten
Client 342 geschaffen wurde. Die Bereich-
Wurzelkomponentendaten, die in dem Lightweight 360 gespei
chert sind, werden zu der Bereiche-Serverwurzelkomponente 388
zurückgeleitet und von dort an die Client-Bereiche-Komponente
389.
Bei einer Anforderung für untergeordnete Elemente der Berei
che-Wurzelkomponente 389 durch den zweiten Client 386 fragt
die Bereiche-Wurzelserverkomponente 388 den Wrappergenerator
312 nach untergeordneten Wrappern, und da diese Wrapper (in
diesem Fall ein Wrapper) bereits vorhanden sind, wird der
Zeiger für den Wrapper 372 von dem Wrappergenerator 312 an
die Bereiche-Wurzelserverkomponente 388 abgegeben. Die Ser
verkomponente 388 erzeugt dann eine untergeordnete Bereich-
Serverkomponente 390, die einen Zeiger auf den Wrapper 372
hat. Die Bereiche-Wurzelserverkomponente 388 sendet die In
formation über das untergeordnete Element an den zweiten Cli
ent 386, der die geeignete Clientkomponente 392 erzeugt, und
den Smart Proxy 393, der mit der Serverkomponente 390 kommu
niziert. Die untergeordnete Bereich-Serverkomponente 390
liest auch das Lightweight 370 über den Wrapper 372 und sen
det diese Daten an die Clientkomponente 392 über den Proxy
393. Da in diesem Prozeß keine Anrufe an die Datenbank er
folgten, ist der Datenbankkontext des zweiten Client leer, da
alle Informationen durch die Lightweights 360 und 370 kamen,
welche den Datenbankkontext des ersten Clientthread 326 nutz
ten, um diese Daten zu erhalten. Wenn jedoch der zweite Cli
ent 386 Daten anfordert, für die kein Lightweight erstellt
wurde, würde der Wrappergenerator 312 einen Wrapper und ein
Lightweight für diese Komponente erstellen und Verbindung mit
der Datenbank 325 über den Datenbankkontext für den zweiten
Clientthread 387 aufnehmen, um diese Daten von der Datenbank
325 zu erhalten.
Es versteht sich, daß jeder andere Client, der nun die Be
reich-Wurzel oder die untergeordnete Bereich-Komponente abon
niert, in der Lage ist, diese Daten aus dem gemeinsam genutz
ten Cache 327 zu erhalten, ohne daß Anrufe an die Datenbank
325 erforderlich sind, was die Belastung der Datenbank 325
verringert. Entsprechend benachrichtigt bei Erhalt einer Er
eignisbenachrichtigung von einem Benachrichtigungsthread der
Datenwrapper 354 die Serverkomponente 388 für den Client 386
sowie die Serverkomponente 350 für den ersten Client 342, um
beide Clients über die Veränderung zu benachrichtigen.
In Fig. 13 sind die Aktivitäten beschrieben, die mit dem Be
nachrichtigungsthread beim Erfassen einer Veränderung in ei
nem Konfigurationsdatenelement und der Art und Weise, auf die
diese Veränderungsbenachrichtigung automatisch zu jedem abon
nierenden Client zurückgeführt wird, in Zusammenhang stehen.
In diesem Fall verändert der zweite Client 386 den Namen des
Area_A von "Fred" in "Wilma" und gibt eine Schreib- oder
Übertragungsmitteilung mit dieser Veränderung an den Server
306 auf. Die Serverkomponente 390 lädt den neuen Namen und
gibt diesen Namen an den Wrapper 372 ab, der den Namen in das
Lightweight 370 lädt. Das Lightweight 370 lädt automatisch
den neuen Namen in den Datenbankkontext 394 für den zweiten
Client 386. Von hier wird der neue Name in der Datenbank 325
gespeichert. Es ist jedoch nichts an der Version der Area_A-
Komponente des ersten Client geschehen. In der Vergangenheit
wäre es erforderlich gewesen, daß der erste Client 342 peri
odisch die Datenbank 325 nach Veränderungen abfragt, was zu
einer Vielzahl von Lesevorgängen aus der Datenbank 325 und
einer Vielzahl von Herunterladevorgängen über die langsame
Kommunikationsverbindung führte.
In diesem Fall fragt jedoch die Benachrichtigungsmaschine 320
periodisch die Datenbank 325 nach einer Liste von Aktualisie
rungsereignissen für jedes der Datenbankelemente, die zu den
magischen Zahlen in dem Wrapperplan 322 gehören, ab. Jedes
Ereignis enthält Informationen, welche angeben, welches Ob
jekt verändert wurde, und einige Informationen über die Ver
änderungen, wie etwa die Art der Veränderung (Umbenennung,
Löschung, Änderung der Eigenschaften, Hinzufügen oder Löschen
eines untergeordneten Elements etc.) und eventuell einige
Hinweise, wie etwa den neuen und den alten Namen im Fall ei
ner Umbenennungsoperation. Die Benachrichtigungsmaschine 320
verwendet den Wrapperplan 322, um die magische Zahl des geän
derten Objekts mit einem Wrapper-ID abzugleichen und fordert
den zugehörigen Wrapper (in diesem Fall den Wrapper 372) auf,
das Aktualisierungsereignis zu verarbeiten. Diese Verarbei
tung kann das erneute Laden des Lightweights 370 aus der Da
tenbank 325 einschließen, um den neuen oder geänderten Wert
dieses Objekts zu erhalten. Ein derartiger erneuter Ladevor
gang kann erforderlich sein, wenn das Lightweight 370 an der
Durchführung der Veränderung an der Datenbank 325 nicht be
teiligt war. Der Wrapper 372 kann das erneute Laden des
Lightweights 370 verweigern, wenn beispielsweise eine erfaßte
Veränderung eine alte oder nicht mehr aktuelle Veränderung
ist, oder aus jedem anderen gewünschten Grund. Der Wrapper
372 benachrichtigt auch jede der Serverkomponenten 380 und
390 über die Veränderung, welche wiederum Mitteilungen, wie
z. B. eine Windows-Mitteilung, an jeden der Clients 342 und
386 senden (welche diese Komponente abonniert haben), um die
Veränderung anzuzeigen. Bei der Verarbeitung einer Ereignis
mitteilung von dem Wrapper 372 leiten die Serverkomponenten
380 und 390 das Event und eventuelle neue Daten an die Smart
Proxys der jeweiligen Clients 342 und 386 weiter. Der Proxy
384 des ersten Clients 342 sendet eine Auffrischungsmittei
lung an die Clientkomponente 382, welche eine Auffrischung an
einer Benutzerschnittstelle an dem ersten Client 344 verursa
chen kann. Wenn in diesem Fall die Benutzerschnittstelle auf
gefrischt wird, gibt der Proxy 384 die neuen Daten an die
Clientkomponente 382 auf und die Aktualisierung ist vollen
det. Der zweite Client 386 kann die Mitteilung ignorieren, da
der zweite Client 386 die Veränderung bereits hat.
Bei diesem Abonnementsystem mußte der erste Client 342 keine
Datenbankanrufe durchführen und nur ein Anruf wurde (bei
spielsweise über eine langsame Kommunikationsverbindung) von
dem Server 306 an den ersten Client 342 ausgeführt, um eine
vollständige Erneuerung des geänderten Elements an den ersten
Client 342 weiterzugeben. Selbstverständlich tritt dieser
Prozeß für jedes Lightweight und für jeden Client, der ein
Lightweight abonniert, auf, so daß jede Veränderung an der
Datenbank 325 automatisch zu jedem Client zurückgesendet wer
den kann, der dieses Element abonniert, und zwar mit einem
Minimalaufwand an Datenbanklesevorgängen und sehr wenigen
Kommunikationsvorgängen über die langsame Kommunikationsver
bindung.
Unter Bezug auf Fig. 14 wird die Operation des Verriege
lungsmanagers 314 bei der Entscheidung von gleichzeitigem Zu
griff auf den Cache 327 im Detail erläutert. Wie aus der vor
stehenden Beschreibung deutlich wird, kann jedes der
Lightweights in dem gemeinsam genutzten Cache 327 von einem
oder mehreren Clientthreads gemeinsam genutzt werden. Als Re
sultat können viele Clients dasselbe Lightweight zur gleichen
Zeit lesen. Typischerweise ist keine Verriegelung für diese
Lesevorgänge erforderlich. Es ist jedoch möglich, in eine Si
tuation zu geraten, in der zwei Clients gleichzeitig versu
chen in ein Lightweight zu schreiben und somit in die Daten
bank 325, was Probleme, wie etwa eine gegenseitige Blockie
rung, verursachen kann. Um diese Probleme zu verhindern, ver
waltet der Verriegelungsmanager 316 den Zugriff auf jedes der
Lightweights, indem Verriegelungen ausgegeben werden und eine
Verriegelungstabelle aufrechterhalten wird. Allgemein ausge
drückt arbeitet der Verriegelungsmanager 316 so, daß er Ver
riegelungsanfragen an Wrapper gewährt. Wenn ein Clientthread
auf ein Lightweight zugreifen möchte, muß der Thread zunächst
eine Lese- oder eine Schreibverriegelung an dem Wrapper er
halten. Wenn die Verriegelung nicht verfügbar ist, da bei
spielsweise ein anderer Clientthread im Zugriffsprozeß auf
dieses Lightweight ist, hält der Verriegelungsmanager 316 den
anfordernden Thread in Wartestellung, bis die Verriegelung
frei wird.
In dem Beispiel von Fig. 14 versuchen der erste und der
zweite Client 342 und 386 in die Beschreibung von Area_A zu
schreiben. Hier versucht der zweite Client 386, einen
Schreibvorgang an dem Lightweight 370 auszuführen, und in
diesem Prozeß fordert er eine Verriegelung an dem Wrapper 372
von dem Verriegelungsmanager 316 an, die ihm gewährt wird.
Wenn der erste Client 342 anschließend versucht, aus den Ei
genschaften des Lightweights 370 zu lesen bzw. in diese zu
schreiben, hält der Verriegelungsmanager 316 die Ausführung
des ersten Clientthread 326 an, wenn dieser Thread versucht,
eine Leseverriegelung oder eine Schreibverriegelung an dem
Datenwrapper 372 zu erhalten. In der Zwischenzeit schreibt
der zweite Clientthread 387 in das Lightweight 370 durch sei
nen eigenen Datenbankkontext 394, um den Namen von Area_A in
"Wilma" zu ändern. Wenn diese Schreiboperation vollendet ist,
erlaubt der Verriegelungsmanager 316 dem ersten Clientthread
326, fortzufahren und aus dem Lightweight 370 und somit aus
der bzw. in die Datenbank 325 zu lesen oder in dieses zu
schreiben. Es sei angemerkt, daß eine Schreibverriegelung
verweigert oder zurückgehalten werden kann, bis eine Lesever
riegelung gelöst ist. Es gibt jedoch gewöhnlich keinen Grund,
eine Leseanforderung zurückzuhalten, wenn nur eine Lesever
riegelung einem anderen Clientthread gewährt wurde. Ferner
sei angemerkt, daß der Verriegelungsmanager 316 verwendet
werden kann, um vorstehend beschriebene Reservierungsopera
tionen durchzuführen. Insbesondere kann eine Reservierungs
verriegelung beispielsweise an dem Lightweight 370 von einem
Client angefordert und diesem gewährt werden. Danach kann je
der Client lesend auf das Lightweight 370 zugreifen, jedoch
nicht in das Lightweight schreiben. Wenn eine Reservierungs
verriegelung gewährt wurde, kann der Verriegelungsmanager 316
veranlassen, daß der Wrapper 372 eine Mitteilung an den Cli
ent sendet, der eine Schreibverriegelung anfordert, daß keine
Schreibvorgänge in diese Daten zulässig sind, da diese durch
einen anderen Client reserviert wurden. Selbstverständlich
kann der Verriegelungsmanager 316 auch ein Identifizierungs
kennzeichen des Client abgeben oder speichern, dem die Reser
vierungsverriegelung gewährt wurde, und diesen Client in die
Lage versetzen, in das Lightweight 370 während eines Übertra
gungsvorganges zu schreiben.
Wenn mit Verriegelungen gearbeitet wird, besteht die Gefahr
einer gegenseitigen Blockierung. Beispielsweise könnte ein
erster Client eine Verriegelung an einer Komponente A erhal
ten und zur gleichen Zeit könnte ein zweiter Client eine Ver
riegelung an einer Komponente B erhalten. Anschließend könnte
der erste Client versuchen, eine Verriegelung an der Kompo
nente B zu erhalten, und würde aufgehalten, bis die Verriege
lung an der Komponente B von dem zweiten Client gelöst wird.
Wenn jedoch der zweite Client versucht, eine Verriegelung an
der Komponente A zu erhalten, bevor die Verriegelung an der
Komponente B gelöst wird, wird die Verriegelung an der Kompo
nente A und Komponente B nie gelöst, was zu einer gegenseiti
gen Blockierung führt. Um eine gegenseitige Blockierung in
dem gemeinsam genutzten Cache 327 zu vermeiden, kann der Ver
riegelungsmanager 316 einer Einschränkung unterliegen, daß
jeweils ein bestimmter Client eine Verriegelung erhalten bzw.
auslösen kann und sie darauffolgend lösen muß, das heißt be
vor eine weitere Verriegelung erhalten wird. In diesem Fall
können jedoch zwei Clients Veränderungen überschreiben, die
jeweils von dem anderen durchgeführt wurden, mit dem Resul
tat, daß der letzte Schreibvorgang bleibt. Beispielsweise mo
difiziert der erste Client Komponente A und der zweite Client
modifiziert Komponente B. Der erste Client modifiziert an
schließend Komponente B, und der zweite Client modifiziert
Komponente A. Während eine gegenseitige Blockierung vermieden
wurde, hat die Komponente A die Veränderungen des zweiten
Clients und Komponente B hat die Veränderungen des ersten
Clients.
Obgleich die Lightweights keine Hierarchie haben, können Ver
weise zwischen Lightweights vorhanden sein. Wenn dies der
Fall ist, ist diese Tatsache eine mögliche Quelle einer ge
genseitigen Blockierung, wenn beispielsweise eine Aktualisie
rungsoperation erfordert, daß beide Lightweights gleichzeitig
verriegelt werden. Um dieses Problem zu vermeiden, kann der
Verriegelungsmanager 316 eine Verriegelungsreihenfolge bei
verwandten Lightweights festlegen. Wenn beispielsweise ein
erstes Lightweight zu einem zweiten Lightweight gehört, wird
das erste Lightweight zu der Verriegelungsliste des zweiten
Lightweights hinzugefügt. Wenn ein Client das zweite
Lightweight verriegeln möchte, muß der Client zunächst das
erste Lightweight verriegeln. Der Verriegelungsmanager 316
kann eine Liste dieser Reihenfolge führen und die Reihenfolge
bei Verriegelungsvorgängen durchsetzen. Um diese abhängige
Verriegelung durchzusetzen, kann der Verriegelungsmanager nur
eine Verriegelung pro Client zu einer bestimmten Zeit erlau
ben, falls die zugehörigen Objekte nicht einen abhängigen
Baum bilden.
Wenn die Modifizierung einer Reihe von Komponenten in der Da
tenbank 325 in einer Datenbanktransaktion geschieht, ist es
möglich, daß die Transaktion fehlschlägt und so eine Rückkehr
auf den Status der Datenbank vor den Änderungen in der Daten
bank 325 durchgeführt wurde, was dazu führt, daß die im Cache
gespeicherten Komponenten (das heißt die Lightweights) mit
den Komponenten, die in der Datenbank 325 gespeichert sind,
nicht konsistent sind. Um einen Rückzugsmechanismus zu schaf
fen, kann ein Clientthread eine Liste von modifizierten Kom
ponenten führen, zu welcher er die Komponenten hinzufügt,
während die Datenbankmodifizierungstransaktion aktiv ist.
Wenn eine Datenbanktransaktion mit mehreren Schritten abge
brochen wird oder das Commit fehlschlägt, wird die Liste
durchgegangen und jede Komponente wird neu geladen, was be
deutet, daß die Eigenschaften einer Komponente neu geladen
werden und eine Überprüfung auf neue/gelöschte untergeordnete
Elemente erfolgt. Wenn eine derartige Liste aus modifizierten
Komponenten in einer bekannten Ordnung (beispielsweise nach
der Wrapper-ID geordnet) geführt wird, ist es möglich, eine
Verriegelungstabelle zu erzeugen und mehrere Verriegelungen
pro Operation des Clients auszuführen.
Um die Zeitdauer zu verringern, während der eine Lightweight
verriegelt ist, kann ein Lightweight, wenn Eigenschaften in
die Datenbank 325 zurückgeschrieben werden, zuerst das Kompo
nentendatenobjekt klonen, das in dem Lightweight gespeichert
ist. Der Klon wird mit den neuen Eigenschaftswerten versorgt
und verwendet, um die Werte in der Datenbank 325 zu spei
chern. Sobald diese Operation vollendet ist, wird das ur
sprüngliche Komponentendatenobjekt in den Klon geändert oder
zugunsten des Klons ersetzt. Die Verwendung einer derartigen
Klonierungstechnik verringert die Zeit, während der der Cache
327 oder das Lightweight verriegelt ist, da das Lightweight
entriegelt werden kann, nachdem der Klon erzeugt wurde, was
die Gleichzeitigkeit des Zugriffs auf den Cache verbessert.
In dieser Situation kann jedoch eine Wettbewerbsbedingung
vorliegen, in der zwei Clients versuchen, zur gleichen Zeit
in dasselbe Lightweight zu schreiben. Insbesondere wird der
Cache mit der Datenbank inkonsistent, wenn der erste Client
seine Version der Komponenten in der Datenbank 325 speichert,
bevor der zweite Client dies tut, aber den Cache (das heißt
das Lightweight) nach dem zweiten Client abändert. Hier hat
die Datenbank die Änderungen des zweiten Client, aber das
Lightweight hat die Änderungen des ersten Client. Diese Si
tuation kann entweder durch eine koordinierte Verriegelung
vermieden werden, oder dadurch, daß nur ein Klon für ein
Lightweight zu einem gegebenen Zeitpunkt erlaubt wird. Alle
diese Vorgänge können durch den Verriegelungsmanager 316 ge
leitet werden.
Wie vorstehend angeführt, kommen neue untergeordnete
Lightweights entweder durch Laden dieser untergeordneten Ele
mente aus der Datenbank 325 ansprechend auf eine Anforderung
eines Clients in Existenz, oder wenn ein Client ein neues un
tergeordnetes Element hinzufügt. Auf Wunsch kann zugelassen
werden, daß Clients den Cache 327 soweit manipulieren, daß
sie neue untergeordnete Komponentendatenobjekte schaf
fen/laden, bevor das übergeordnete Element verriegelt wird,
so daß das übergeordnete Lightweight nur dann verriegelt wer
den muß, wenn ein untergeordnetes Element tatsächlich mit der
Hierarchie verbunden wird oder dem übergeordneten Element zu
geordnet wird. Mit anderen Worten können alle zu erstellenden
Objekte, die mit untergeordneten Komponenten verbunden sind,
in nicht gemeinsam genutzter Weise oder in einem lokalen
Speicher erstellt werden, bis alle untergeordneten Elemente
vollendet sind. Dann kann das übergeordnete Element verrie
gelt und modifiziert werden, so daß es die Zeiger zu diesen
untergeordneten Elementen enthält, um dadurch diese unterge
ordneten Objekte in den gemeinsam genutzten Speicher zu ver
schieben. Als Resultat wird das übergeordnete Lightweight nur
dann verriegelt, wenn es geändert wird, so daß es den Bezug
zu neuen untergeordneten Komponenten hat, und nicht während
der Erstellung dieser untergeordneten Objekte.
In Fig. 15 ist die Operation des Laufzeitbenachrichtigung
sthreads dargestellt, der Clients über Veränderungen der Kon
figuration eines Prozeßsteuersystems, die durch Laufzeitope
rationen verursacht werden, benachrichtigt. In diesem Fall
wird angenommen, daß ein Client 400 eine außer Dienst ge
stellte Einrichtungskomponente abonniert und daß die Client
komponente 402, das Proxy 404, die Serverkomponente 406 der
außer Dienst gestellten Einrichtung, der Wrapper 408 und das
Lightweight 410 innerhalb des Clients 400 und des Servers 306
bereits eingerichtet sind. Ferner wird angenommen, daß der
Wrapper 408 in dem Plan 340 registriert wurde, um Hinweise
auf das Hinzufügen von neuen Steuereinrichtungen zu dem Sy
stem zu erhalten, als der Wrapper 408 geschaffen wurde. In
diesem Beispiel erfaßt die Benachrichtigungsmaschine 336 des
Laufzeitbenachrichtigungsthreads das Hinzufügen einer neuen
Steuereinrichtung (namens "CTLR001"), die über Laufzeitservi
ces (wie z. B. eine automatisch erfassende Anwendung) hinzuge
fügt wurde, und sendet ein Aktualisierungsereignis an den
Wrapper 408 der außer Dienst gestellten Einrichtungen, wel
ches das Vorhandensein dieser neuen Steuereinrichtung angibt.
Der Wrapper 408 für außer Dienst gestellte Einrichtungen ant
wortet auf das Aktualisierungsereignis, indem ein untergeord
neter Wrapper 412 für die erfaßte Steuereinrichtung geschaf
fen wird, ein Lightweight 414 für die neue Steuereinrichtung
geschaffen wird, und sofern möglich, die Steuereinrichtungs
daten als von den Laufzeitservices abgegeben in das
Lightweight 414 gespeichert werden. Das Lightweight 414 kann
diese Daten in der Datenbank 325 speichern, falls dies er
wünscht ist, und das ID für den Datenwrapper 412 und die ma
gische Zahl der Datenbankposition, an der die Information der
neuen Steuereinrichtung gespeichert ist, in dem Wrapperplan
322 für den Benachrichtigungsthread registrieren. Der Wrapper
412 kann ferner eine Registrierung in dem Plan 340 für Aktua
lisierungen durchführen. Beim Laden der neuen Steuereinrich
tung als ein neues untergeordnetes Element in dem gemeinsam
genutzten Cache 327 wird ein Ereignis in der Serverkomponente
für außer Dienst gestellte Einrichtungen 406 angezeigt, wel
che durch Erstellen einer neuen untergeordneten Steuerein
richtungsserverkomponente 416, durch Einbetten eines Zeigers
auf den neuen untergeordneten Datenwrapper 412 und durch Wei
tergeben der neuen Steuereinrichtungsdaten an den Client 400
reagiert. Der Client-Proxy 404 empfängt das neue untergeord
nete Ereignis, speichert die neuen untergeordneten Informa
tionen und setzt eine Auffrischungsmitteilung in die Benut
zerschnittstelle an dem Client 400. Wenn die Clientkomponente
402 für außer Dienst gestellte Einrichtungen die neuen unter
geordneten Elemente lädt, baut die Clientkomponente 402 für
außer Dienst gestellte Einrichtungen eine neue untergeordnete
Steuereinrichtungskomponente 418 auf und schafft eine Verbin
dung zurück zu der Serverkomponente 416 für die Steuerein
richtungskomponente 418 unter Verwendung von Serverkomponen
tenidentifikationsinformationen, die von der Serverkomponente
406 für untergeordnete Einrichtungen zu dem Client 400 gesen
det wurden. Ein Proxy 420 für die Steuereinrichtungskomponen
te 418 wird geschaffen und nimmt die Kommunikation mit der
Serverkomponente 416 für die Steuereinrichtungskomponente 418
auf. Somit wird das Hinzufügen der Steuereinrichtung durch
die Benachrichtigungsmaschine 336 erfaßt und diese Verände
rung wird zu dem zugehörigen Datenwrapper 408 gesendet, der
die in einem Lightweight gespeicherten Daten verändern kann
oder das Erstellen oder das Löschen eines Lightweights und
des zugehörigen Wrappers veranlassen kann. Das Erstellen ei
nes neuen Wrappers und Lightweights führt zu der Erweiterung
jedes Clientthreads, der das übergeordnete Objekt abonniert.
Abgesehen von den vorstehend beschriebenen Operationen können
von dem Server 306 andere Aktivitäten oder Operationen ausge
führt werden. Beispielsweise kann ein Client eine Operation
durchführen oder erstellen, bei welcher der Client eine Kom
ponente erstellt, die in der Datenbank 325 zu speichern ist.
Die mit dieser Erstellaktivität verbundenen Operationen sind
sehr ähnlich dem Ladevorgang eines untergeordneten Elements,
wobei der zusätzliche Schritt des Erstellens des zugrundelie
genden Datenbankobjekts in der Datenbank 325 anstelle des La
dens dieses Objekts aus der Datenbank 325 dazukommt. Hier er
stellt der Client eine Komponente und sendet diese Komponente
zu der Serverkomponente, die dem übergeordneten Element der
erstellten Komponente zugehörig ist. Diese Tätigkeit veran
laßt den Wrappergenerator 312, einen Wrapper und ein
Lightweight als ein untergeordnetes Element des zugehörigen
übergeordneten Wrappers und Lightweights zu schaffen, und das
neue Lightweight wird mit der neuen Komponente geladen. Das
Lightweight schreibt dann die neue Komponente in die Daten
bank 325 und registriert die Datenbankposition und den Wrap
per in dem Wrapperplan 322 in dem Benachrichtigungsthread.
Eine neue Serverkomponente wird anschließend für den Wrapper
erstellt und nimmt die Kommunikation mit den Client für diese
neue Komponente auf.
Um eine Komponente aus der Datenbank 325 zu löschen, löscht
ein Client zunächst die zugehörige Serverkomponente und gibt
diese dann frei. Das Löschen der Serverkomponente setzt den
zugehörigen Datenwrapper und das Lightweight in einen ge
löschten Status, welcher anschließend die Komponente aus der
Datenbank 325 löscht. Der Wrapper sendet eine Löschmitteilung
an jede der anderen Bezug nehmenden Serverkomponenten (das
heißt innerhalb anderer Clientthreads), welche wiederum die
abonnierenden Clients über die Löschaktivität informieren. Im
gelöschten Status wird der Wrapper aus der Konfigurations
hierarchie entfernt und kann keine weiteren Datenbankopera
tionen durchführen. Der Wrapper kann jedoch verbleiben, bis
alle Bezug nehmenden Serverkomponenten diesen freigegeben ha
ben. Selbstverständlich geben die Bezug nehmenden Serverkom
ponenten diesen nicht frei, bis die zugehörigen Clients die
Freigabe erklärt haben, was auftritt, nachdem die Serverkom
ponenten die Clients über die Löschaktivität informiert ha
ben. Selbstverständlich kann der Datenbankereignismechanismus
schließlich eine Löschmitteilung erzeugen, welche durch die
Benachrichtigungsmaschine des Benachrichtigungsthread zurück
zu dem Wrapper geleitet wird. Da der Wrapper in einem ge
löschten Zustand ist, ignoriert er diese Mitteilung.
Die Mutation bzw. Veränderung einer Konfigurationskomponente
kann auftreten, da einige Operationen an einer Komponente
verursachen, daß der Typ dieser Komponente geändert wird.
Diese Mutation erfordert, daß die Komponente und der abhängi
ge Baum von der Datenbank 325 neu geladen werden. Um diese
Operation zu bewirken, wird die gesamte Parent/Child-Hierar
chie, das heißt die Hierarchie von übergeordnetem Element und
untergeordnetem Element für das Lightweight der mutierten
Komponente aus der Datenbank 325 neu in die vorhandenen
Lightweights geladen. Anschließend werden die Serverkomponen
ten neu erstellt und die neuen Werte innerhalb dieser Server
komponenten werden anschließend mit den Clientkomponenten
synchronisiert. Eine derartige Synchronisierung beinhaltet
das Iterieren durch die untergeordneten Komponenten und Ent
fernen derjenigen, deren Typ sich verändert hat, und derjeni
gen, die nicht mehr vorhanden sind. Neue untergeordnete Ele
mente werden nach Bedarf geladen und hinzugefügt.
Selbstverständlich kann ein Client ohne weiteres eine Kompo
nente innerhalb der Datenbank 325 freigeben oder das Abonne
ment lösen. In diesem Fall gibt der Client die zugehörige
Serverkomponente frei, was verursacht, daß der zugehörige
Wrapper einen Wrapperreferenzzählwert verringert. Wenn der
Wrapperreferenzzählwert für einen Wrapper auf Null geht, neh
men keine Komponenten Bezug auf diesen Wrapper und somit
abonnieren keine Clients diesen Wrapper. In diesem Fall wird
der Wrapper entladen. Auf Wunsch kann der Wrapper eine
Zeitauslösungsperiode abwarten, bevor er entladen wird, falls
der Wrapper unmittelbar neu geladen werden muß. Beim Entladen
zerstört der Wrapper sein zugehöriges Lightweight, löscht die
Registrierung der Aktualisierungsbenachrichtigung in der Da
tenbank 325 und löscht die Registrierung aus dem Wrapperplan.
Wenn ferner eine Komponente freigegeben wird, gibt sie ihr
Lightweight und alle untergeordneten Lightweights/Wrapper
frei und annulliert die rückverweisenden Zeiger von unterge
ordneten Lightweights/Wrappern.
Während die Operation des Servers 306 hier für zwei Clients,
die auf eine oder zwei Komponenten zugreifen, beschrieben
wurde, versteht sich von selbst, daß dieselbe Technik erwei
tert werden kann und für jede Anzahl von Clients und Client
threads verwendet werden kann, die aus einer beliebigen An
zahl von Konfigurationsobjekten innerhalb einer Datenbank le
sen und in diese schreiben. Während ferner die Technik zur
Verwendung eines gemeinsam genutzten Cache zum Herstellen ei
ner Abonnentenbeziehung für mehrere Clients hierin zur Ver
wendung beim Zugriff auf Konfigurationsdaten innerhalb eines
Prozeßsteuersystems beschrieben wurde, versteht es sich, daß
diese Technik in jedem anderen Datenbankzugriffssystem ver
wendet werden kann, einschließlich derjenigen, die nicht in
Beziehung zu Konfigurationsdatenbanken stehen und derjenigen,
die nicht in Beziehung zu Prozeßsteuersystemdatenbanken ste
hen.
Während ferner die hierin beschriebene Datenbankzugriffstech
nik davon ausgeht, daß Clients mit einem Server auf einer Ba
sis jeweils pro Komponente kommunizieren, kann das Marshaling
von Konfigurationsbäumen verwendet werden, um eine verbesser
te Kommunikation zwischen einem Client und einem Server zu
schaffen. Insbesondere dann, wenn ein Client weiß, daß er ei
nen gesamten Baum oder Baumabschnitt abrufen muß, ist es ef
fizienter, einen Serveranruf durchzuführen, um den gesamten
Baum zu erhalten, anstatt wiederholt eine Anzahl von unterge
ordneten Routinen auf jeder Ebene des Baumes abzurufen. Ent
gegengesetzt gilt ebenso, daß dann, wenn ein Client einen ge
samten Baum zurück in den Server schreiben möchte, der gesam
te Baum in einer Signalmitteilung gesendet werden kann.
Selbstverständlich können diese Mitteilungen von dem Client
und dem Server aufgefangen werden und die erforderlichen Ob
jekte, um eine Abonnementbeziehung (wie vorstehend beschrie
ben) zu schaffen, können auf einmal erstellt werden, um da
durch alle Objekte innerhalb des Clients oder des Servers zu
erstellen, die erforderlich sind, daß der Client den gesamten
Baum oder Baumabschnitt abonnieren kann oder einen gesamten
Baum oder Baumabschnitt schreiben kann.
Ferner versteht es sich, daß die Objekte und anderen Elemente
und Schritte, die hierin beschrieben wurden, welche in dem
Server und den Clients zu erstellen oder auszuführen sind,
unter Verwendung jeder gewünschten Programmiertechnik oder
-sprache implementiert werden können und daß diese Programme
in beliebiger Weise innerhalb der hierin beschriebenen Cli
ents, Server und Datenbanken in Speichern gespeichert und in
Prozessoren ausgeführt werden können. Obgleich darüber hinaus
die hierin beschriebene Datenzugriffstechnik vorzugsweise in
Software implementiert wird, kann sie in Hardware, Firmware
etc. implementiert werden und kann von jedem Prozessor imple
mentiert werden, der dem Prozeßsteuersystem 10 zugehörig ist.
So kann diese Technik in einer Standard-Mehrzweck-CPU oder
auf einer speziell gestalteten Hardware oder Firmware nach
Wunsch implementiert werden. Bei der Implementierung der
Software können die Softwareroutinen in jeden computerlesba
ren Speicher, wie z. B. auf einer Magnetplatte, einer Laser
platte, einer optischen Platte oder einem anderen Speicherme
dium, in einem RAM oder ROM eines Computers oder Prozessors
etc. gespeichert werden. Entsprechend kann diese Software ei
nem Benutzer oder einem Prozeßsteuersystem über jedes bekann
te oder gewünschte Zulieferverfahren geliefert werden, darun
ter beispielsweise auf einer computerlesbaren Platte oder ei
nem anderen transportablen Computerspeichermechanismus oder
über einen Kommunikationskanal, wie etwa eine Telefonleitung,
das Internet etc. (welche als gleich oder als austauschbar
mit dem Weiterleiten derartiger Software über ein transporta
bles Speichermedium betrachtet werden).
Claims (79)
1. Konfigurationsdatenbanksystem zur Verwendung bei der
Speicherung von Konfigurationsdaten, die zu einem
Prozeßsteuersystem gehören, das eine Vielzahl von
geographisch verteilten physischen Orten hat, welches
Konfigurationsdatenbanksystem enthält:
eine an jedem der mehreren physischen Standorte befindliche Konfigurationsdatenbank, wobei jede der Konfigurationsdatenbanken so ausgelegt ist, daß sie ursprünglich einen unterschiedlichen Abschnitt der Konfigurationsdaten speichert;
ein Kommunikationsnetzwerk, das die Vielzahl der geographisch verteilten physischen Standorte miteinander in Kommunikationsverbindung setzt; und
eine Konfigurationsanwendung, die so ausgelegt ist, daß sie mit jeder der Datenbanken über das Kommunikationsnetzwerk kommuniziert und Daten von zwei oder mehr der Konfigurationsdatenbanken benutzt, um eine Konfigurationsaktivität durchzuführen.
eine an jedem der mehreren physischen Standorte befindliche Konfigurationsdatenbank, wobei jede der Konfigurationsdatenbanken so ausgelegt ist, daß sie ursprünglich einen unterschiedlichen Abschnitt der Konfigurationsdaten speichert;
ein Kommunikationsnetzwerk, das die Vielzahl der geographisch verteilten physischen Standorte miteinander in Kommunikationsverbindung setzt; und
eine Konfigurationsanwendung, die so ausgelegt ist, daß sie mit jeder der Datenbanken über das Kommunikationsnetzwerk kommuniziert und Daten von zwei oder mehr der Konfigurationsdatenbanken benutzt, um eine Konfigurationsaktivität durchzuführen.
2. Konfigurationsdatenbanksystem nach Anspruch 1, dadurch
gekennzeichnet, daß die Konfigurationsanwendung so
ausgelegt ist, daß sie eine Teilmenge der
Konfigurationsdaten innerhalb einer ersten der
Konfigurationsdatenbanken abonniert und diese erste der
Konfigurationsdatenbanken einen Datenbankserver enthält,
der eine erste Routine hat, welche automatisch eine
Veränderung an der Teilmenge der Konfigurationsdaten
erkennt, die in der ersten Konfigurationsdatenbank
gespeichert sind und welche die Konfigurationsanwendung
abonniert, und eine zweite Routine, die automatisch die
Konfigurationsanwendung über die Veränderung an der
Teilmenge der Konfigurationsdaten benachrichtigt.
3. Konfigurationsdatenbanksystem nach Anspruch 2, dadurch
gekennzeichnet, daß die zweite Routine automatisch die
an der Teilmenge der Konfigurationsdaten, die in der
ersten Konfigurationsdatenbank gespeichert sind,
durchgeführte Veränderung an die Konfigurationsanwendung
mitteilt, wenn die erste Routine die Veränderung an der
Teilmenge der Konfigurationsdaten erfaßt.
4. Konfigurationsdatenbanksystem nach Anspruch 2, dadurch
gekennzeichnet, daß die Konfigurationsanwendung einen
Verriegelungsabschnitt enthält, der einen
Verriegelungsbefehl zum Verriegeln eines Elements von
Konfigurationsdaten innerhalb der ersten
Konfigurationsdatenbank sendet, und dadurch, daß der
Datenbankserver ferner eine Verriegelungsroutine
enthält, welche das Element der Konfigurationsdaten
innerhalb der ersten Konfigurationsdatenbank verriegelt,
um zu verhindern, daß das Element der
Konfigurationsdaten durch eine andere
Konfigurationsanwendung als diejenige
Konfigurationsanwendung, welche den Verriegelungsbefehl
gesendet hat, verändert wird.
5. Konfigurationsdatenbanksystem nach Anspruch 2, ferner
enthaltend eine zweite Konfigurationsanwendung, wobei
der Datenbankserver eine zweite Routine enthält, welche
gleichzeitigen Zugriff auf ein bestimmtes Element von
Konfigurationsdaten innerhalb der ersten
Konfigurationsdatenbank für die erste und die zweite
Konfigurationsanwendung gewährt, und wobei der
Datenbankserver ferner eine Verriegelungsroutine
enthält, welche das bestimmte Element der
Konfigurationsdaten innerhalb der ersten
Konfigurationsdatenbank verriegelt, wenn die erste
Konfigurationsanwendung in das bestimmte Element von
Konfigurationsdaten schreibt, um dadurch zu verhindern,
daß die zweite Konfigurationsanwendung das bestimmte
Element von Konfigurationsdaten verändert, wenn die
erste Konfigurationsanwendung in das bestimmte Element
von Konfigurationsdaten schreibt.
6. Konfigurationsdatenbanksystem nach Anspruch 1, dadurch
gekennzeichnet, daß die Konfigurationsdatenbanken in
einer Hierarchie eingerichtet sind, die mindestens zwei
Konfigurationsdatenbanken in einer niedrigeren Ebene und
mindestens eine Konfigurationsdatenbank in einer höheren
Ebene hat, und wobei jede der Konfigurationsdatenbanken
in der niedrigeren Ebene mit der Konfigurationsdatenbank
in der höheren Ebene in Kommunikationsverbindung steht.
7. Konfigurationsdatenbanksystem nach Anspruch 6, dadurch
gekennzeichnet, daß die untere Ebene Zonen enthält, die
zu verschiedenen physischen Orten gehören, wobei die
Konfigurationsdaten, die zu einer ersten Zone gehören,
in der Konfigurationsdatenbank in der ersten Zone
gespeichert werden, und die Konfigurationsdaten, die zu
der ersten und der zweiten Zone gehören, in der
Konfigurationsdatenbank in der höheren Ebene in der
Hierarchie gespeichert werden, die mit der ersten und
der zweiten Zone in Kommunikationsverbindung steht.
8. Konfigurationsdatenbanksystem nach Anspruch 6, ferner
enthaltend Software, welche die Verwendung desselben
Namens in einer der Konfigurationsdatenbanken innerhalb
der unteren Ebene und der Konfigurationsdatenbank in der
höheren Ebene erfaßt.
9. Konfigurationsdatenbanksystem nach Anspruch 1, dadurch
gekennzeichnet, daß die Konfigurationsanwendung eine
Suchroutine enthält, die so ausgelegt ist, daß sie eine
erste der Konfigurationsdatenbanken durchsucht und eine
zweite der Konfigurationsdatenbanken durchsucht.
10. Konfigurationsdatenbanksystem nach Anspruch 1, dadurch
gekennzeichnet, daß eine der Konfigurationsdatenbanken
eine lokale Kopie eines Elements speichert, das
ursprünglich in einer anderen Konfigurationsdatenbank
gespeichert ist.
11. Konfigurationsdatenbanksystem nach Anspruch 1, dadurch
gekennzeichnet, daß das Kommunikationsnetzwerk eine
langsame Kommunikationsverbindung zwischen zwei der
Konfigurationsdatenbanken enthält.
12. Verteiltes Konfigurationsdatenbanksystem, das so
ausgelegt ist, daß es in einem Prozeßsteuersystem mit
mehreren physischen Orten verwendet wird, enthaltend:
eine erste Konfigurationsdatenbank, die an einem ersten physischen Ort angeordnet ist, welche einen ersten Abschnitt von Konfigurationsdaten für das Prozeßsteuersystem speichert;
eine zweite Konfigurationsdatenbank, die an einem zweiten physischen Ort angeordnet ist, welche einen zweiten Abschnitt der Konfigurationsdaten für das Prozeßsteuersystem speichert, wobei der erste Abschnitt der Konfigurationsdaten von dem zweiten Abschnitt der Konfigurationsdaten verschieden ist; und
ein Kommunikationsnetzwerk, das den ersten physischen Ort und den zweiten physischen Ort unter Verwendung einer langsamen Kommunikationsverbindung verbindet,
wobei die erste und die zweite Konfigurationsdatenbank so ausgelegt sind, daß sie mit Benutzern an dem ersten und dem zweiten physischen Ort kommunizieren.
eine erste Konfigurationsdatenbank, die an einem ersten physischen Ort angeordnet ist, welche einen ersten Abschnitt von Konfigurationsdaten für das Prozeßsteuersystem speichert;
eine zweite Konfigurationsdatenbank, die an einem zweiten physischen Ort angeordnet ist, welche einen zweiten Abschnitt der Konfigurationsdaten für das Prozeßsteuersystem speichert, wobei der erste Abschnitt der Konfigurationsdaten von dem zweiten Abschnitt der Konfigurationsdaten verschieden ist; und
ein Kommunikationsnetzwerk, das den ersten physischen Ort und den zweiten physischen Ort unter Verwendung einer langsamen Kommunikationsverbindung verbindet,
wobei die erste und die zweite Konfigurationsdatenbank so ausgelegt sind, daß sie mit Benutzern an dem ersten und dem zweiten physischen Ort kommunizieren.
13. Verteiltes Konfigurationsdatenbanksystem nach Anspruch
12, dadurch gekennzeichnet, daß die zweite
Konfigurationsdatenbank so ausgelegt ist, daß sie
Konfigurationsdaten in der ersten
Konfigurationsdatenbank abonniert, wobei die erste
Konfigurationsdatenbank einen Datenbankserver enthält,
der eine erste Routine hat, die automatisch eine
Veränderung an Konfigurationsdaten erfaßt, die in der
ersten Konfigurationsdatenbank gespeichert sind, welche
die zweite Konfigurationsdatenbank abonniert, und eine
zweite Routine, die automatisch die zweite
Konfigurationsdatenbank über die Veränderung an den
Konfigurationsdaten, die in der ersten
Konfigurationsdatenbank gespeichert sind, welche die
zweite Konfigurationsdatenbank abonniert,
benachrichtigt.
14. Verteiltes Konfigurationsdatenbanksystem nach Anspruch
13, bei welchem die zweite Routine automatisch die an
den Konfigurationsdaten, die in der ersten
Konfigurationsdatenbank gespeichert sind, vorgenommenen
Veränderungen an die zweite Konfigurationsdatenbank
mitteilt, wenn die erste Routine die Veränderung an den
in der ersten Konfigurationsdatenbank gespeicherten
Konfigurationsdaten, welche die zweite
Konfigurationsdatenbank abonniert, erfaßt.
15. Verteiltes Konfigurationsdatenbanksystem nach Anspruch
12, ferner enthaltend eine erste und eine zweite
Konfigurationsanwendung und einen Datenbankserver, der
der ersten Konfigurationsdatenbank zugeordnet ist, wobei
der Datenbankserver einen gemeinsam genutzten Cache
enthält, der gleichzeitigen Zugriff auf jedes bestimmte
Element von Konfigurationsdaten in der ersten
Konfigurationsdatenbank für die erste und die zweite
Konfigurationsanwendung gewährt, und eine
Verriegelungsroutine enthält, welche das bestimmte
Element der Konfigurationsdaten in der ersten
Konfigurationsdatenbank verriegelt, wenn die erste
Konfigurationsanwendung in das bestimmte Element von
Konfigurationsdaten schreibt, um dadurch zu verhindern,
daß die zweite Konfigurationsanwendung das bestimmte
Element von Konfigurationsdaten verändert, wenn die
erste Konfigurationsanwendung in das bestimmte Element
von Konfigurationsdaten schreibt.
16. Verteiltes Konfigurationsdatenbanksystem nach Anspruch
12, ferner enthaltend eine dritte
Konfigurationsdatenbank, die an einem dritten physischen
Ort befindlich ist, wobei die erste, die zweite und die
dritte Konfigurationsdatenbank in einer Hierarchie
eingerichtet sind, in der die erste und die zweite
Konfigurationsdatenbank in einer niederen Ebene sind und
die dritte Konfigurationsdatenbank in einer höheren
Ebene ist, und wobei jede der ersten und zweiten
Konfigurationsdatenbanken in der niederen Ebene mit der
dritten Konfigurationsdatenbank in der höheren Ebene
über das Kommunikationsnetzwerk in
Kommunikationsverbindung steht.
17. Verteiltes Konfigurationsdatenbanksystem nach Anspruch
16, dadurch gekennzeichnet, daß die untere Ebene eine
erste und eine zweite Zone enthält, wobei
Konfigurationsdaten, die zu einer ersten Zone gehören,
in der ersten Konfigurationsdatenbank gespeichert sind,
Konfigurationsdaten, die zu der zweiten Zone gehören, in
der zweiten Konfigurationsdatenbank gespeichert sind,
und Konfigurationsdaten, die sowohl zu der ersten als
auch zu der zweiten Zone gehören, in der dritten
Konfigurationsdatenbank gespeichert sind.
18. Verteiltes Konfigurationsdatenbanksystem nach Anspruch
16, ferner enthaltend eine Routine, die die Verwendung
desselben Namens innerhalb der ersten und der dritten
Konfigurationsdatenbank oder innerhalb der zweiten und
der dritten Konfigurationsdatenbank erfaßt.
19. Verfahren zum Speichern und Verwenden von
Konfigurationsdaten, die sich auf ein Prozeßsteuersystem
beziehen, wenn das Prozeßsteuersystem zwei oder mehr
physische Orte hat, die geographisch getrennt sind,
welches Verfahren die Schritte enthält:
Speichern eines unterschiedlichen Abschnittes der Konfigurationsdaten in jeweils einer Vielzahl von Konfigurationsdatenbanken, wobei zwei der Konfigurationsdatenbanken an verschiedenen physischen Orten befindlich sind;
Vorsehen einer Kommunikationsverbindung zwischen jeder der Konfigurationsdatenbanken; und
Zugreifen auf verschiedene Kommunikationsdaten von zwei oder mehr der Konfigurationsdatenbanken zur gleichen Zeit, um eine Konfigurationsaktivität auszuführen.
Speichern eines unterschiedlichen Abschnittes der Konfigurationsdaten in jeweils einer Vielzahl von Konfigurationsdatenbanken, wobei zwei der Konfigurationsdatenbanken an verschiedenen physischen Orten befindlich sind;
Vorsehen einer Kommunikationsverbindung zwischen jeder der Konfigurationsdatenbanken; und
Zugreifen auf verschiedene Kommunikationsdaten von zwei oder mehr der Konfigurationsdatenbanken zur gleichen Zeit, um eine Konfigurationsaktivität auszuführen.
20. Verfahren zur Speicherung und Nutzung von
Konfigurationsdaten nach Anspruch 19, dadurch
gekennzeichnet, daß der Schritt des Zugreifens auf
verschiedene Konfigurationsdaten den Schritt des
Verwendens einer Anwendung enthält, um die
Konfigurationsdaten, auf die Zugriff besteht, von den
zwei oder mehr der Konfigurationsdatenbanken zu
abonnieren und automatisch alle Veränderungen, die an
den im Zugriff befindlichen Konfigurationsdaten
durchgeführt werden, von den zwei oder mehr
Konfigurationsdatenbanken an die Anwendung zu senden.
21. Verfahren zur Speicherung und Nutzung von
Konfigurationsdaten nach Anspruch 19, ferner enthaltend
den Schritt des Einrichtens einer Hierarchie unter den
Konfigurationsdatenbanken, wobei die Hierarchie zwei
Konfigurationsdatenbanken in einer unteren Ebene und
eine Konfigurationsdatenbank in einer höheren Ebene
enthält, und des Einrichtens einer
Kommunikationsverbindung zwischen jeder der zwei
Konfigurationsdatenbanken in der unteren Ebene und der
einen Konfigurationsdatenbank in der höheren Ebene.
22. Verfahren zur Speicherung und Nutzung von
Konfigurationsdaten nach Anspruch 21, ferner enthaltend
der Verwendung von einzigartigen Namen von
Konfigurationsdaten in der einen Konfigurationsdatenbank
in der höheren Ebene der Hierarchie und einer der beiden
Konfigurationsdatenbanken in der unteren Ebene der
Hierarchie, wobei derselbe Name in den beiden
Konfigurationsdatenbanken in der unteren Ebene der
Hierarchie verwendet werden kann.
23. Datenbankserver, der so ausgelegt ist, daß er mehreren
Clients gleichzeitigen Zugriff auf eine
Datenbankkomponente bietet, die in einer Datenbank
gespeichert ist, welcher Datenbankserver enthält:
einen gemeinsam genutzten Cache, der einen Speicher enthält, der mit der Datenbank in Kommunikationsverbindung steht, wobei der Speicher eine Kopie der Datenbankkomponente enthält;
einen Speicherzugang, der zu dem Speicher gehört, wobei der Speicherzugang den Zugriff auf den Speicher steuert; und
ein Clientthread für jeden der mehreren Clients, wobei jeder der Clientthreads eine Serverkomponente enthält, die mit dem Speicherzugang kommuniziert, um Zugriff auf den Speicher zu erhalten, und die mit einem der mehreren Clients mit Bezug auf die Datenbankkomponente, die in dem Speicher gespeichert ist, kommuniziert;
wobei der Speicherzugang mit einer einzelnen Serverkomponente kommuniziert, wenn nur einer der mehreren Clients auf die Datenbankkomponente zugreift, und der Speicherzugang mit zwei oder mehr Serverkomponenten kommuniziert, wenn zwei oder mehr Clients auf die Datenbankkomponente zugreifen.
einen gemeinsam genutzten Cache, der einen Speicher enthält, der mit der Datenbank in Kommunikationsverbindung steht, wobei der Speicher eine Kopie der Datenbankkomponente enthält;
einen Speicherzugang, der zu dem Speicher gehört, wobei der Speicherzugang den Zugriff auf den Speicher steuert; und
ein Clientthread für jeden der mehreren Clients, wobei jeder der Clientthreads eine Serverkomponente enthält, die mit dem Speicherzugang kommuniziert, um Zugriff auf den Speicher zu erhalten, und die mit einem der mehreren Clients mit Bezug auf die Datenbankkomponente, die in dem Speicher gespeichert ist, kommuniziert;
wobei der Speicherzugang mit einer einzelnen Serverkomponente kommuniziert, wenn nur einer der mehreren Clients auf die Datenbankkomponente zugreift, und der Speicherzugang mit zwei oder mehr Serverkomponenten kommuniziert, wenn zwei oder mehr Clients auf die Datenbankkomponente zugreifen.
24. Datenbankserver nach Anspruch 23, ferner enthaltend
einen Benachrichtigungsthread, der eine
Benachrichtigungsmaschine hat, die eine Veränderung
erfaßt, die an der Datenbankkomponente in der Datenbank
durchgeführt wurde und die den Speicherzugang über die
erfaßte Veränderung benachrichtigt.
25. Datenbankserver nach Anspruch 24, dadurch
gekennzeichnet, daß der Speicherzugang die
Serverkomponenten, die dem Speicherzugang die erfaßte
Veränderung mitteilen, benachrichtigt, wobei die
benachrichtigten Serverkomponenten die Clients
benachrichtigen, mit welchen die benachrichtigten
Serverkomponenten in Kommunikation über die erfaßte
Veränderung stehen.
26. Datenbankserver nach Anspruch 24, dadurch
gekennzeichnet, daß der Benachrichtigungsthread ferner
einen Plan enthält, der die Datenbankkomponente, die in
der Datenbank gespeichert ist, in Bezug auf den
Speicherzugang verzeichnet, wobei die
Benachrichtigungsmaschine den Plan verwendet, um den
Speicherzugang über die erfaßte Veränderung zu
benachrichtigen.
27. Datenbankserver nach Anspruch 26, dadurch
gekennzeichnet, daß der Speicherzugang ein einzigartiges
Identifizierungskennzeichen enthält und das einzigartige
Identifizierungskennzeichen in dem Plan einträgt, wobei
der Speicher ein Transaktionsobjekt verwendet, um die
Datenbankkomponente aus der Datenbank auszulesen oder
die Datenbankkomponente in die Datenbank zu schreiben,
und wobei das Transaktionsobjekt einen
Datenbankkomponentenort für die Datenbankkomponente in
dem Plan registriert, der mit dem einzigartigen
Kommunikationskennzeichen zu verbinden ist.
28. Datenbankserver nach Anspruch 24, ferner enthaltend
einen Laufzeitthread, der eine
Laufzeitbenachrichtigungsmaschine enthält, welche
Veränderungen erfaßt, die bezüglich der
Datenbankkomponente durchgeführt wurden, welche von
außerhalb der Datenbank ausgeführten Anwendungen
durchgeführt wurden, und welcher den Speicherzugang über
die erfaßte Veränderung an der Datenbankkomponente
benachrichtigt.
29. Datenbankserver nach Anspruch 23, dadurch
gekennzeichnet, daß die Serverkomponente jedes der
Clientthreads in der Lage ist, aus dem Speicher zu lesen
und in den Speicher zu schreiben.
30. Datenbankserver nach Anspruch 23, dadurch
gekennzeichnet, daß eine der Serverkomponenten mit einem
der mehreren Clients über eine langsame
Kommunikationsverbindung in Kommunikation steht.
31. Datenbankserver nach Anspruch 23, dadurch
gekennzeichnet, daß die langsame
Kommunikationsverbindung eine
Satellitenkommunikationsverbindung ist.
32. Datenbankserver nach Anspruch 23, ferner enthaltend
einen Verriegelungsmanager, der veranlaßt, daß der
Speicherzugang Schreibvorgänge in dem Speicher
verhindert.
33. Datenbankserver nach Anspruch 32, dadurch
gekennzeichnet, daß der Verriegelungsmanager den
Speicherzugang veranlaßt, Schreibvorgänge in dem
Speicher von jedem der Clients mit Ausnahme eines der
Clients zu verhindern, wenn dieser eine der Clients in
den Speicher schreibt.
34. Datenbankserver nach Anspruch 23, dadurch
gekennzeichnet, daß die Datenbank eine
Konfigurationsdatenbank ist und die Datenbankkomponente
eine Konfigurationskomponente ist, die in Beziehung zu
der Konfiguration eines Prozeßsteuernetzwerkes steht.
35. Datenbankserver, der dazu ausgelegt ist, mehreren
Clients gleichzeitigen Zugriff auf eine Vielzahl von
Datenbankkomponenten zu gewähren, die in einer Datenbank
gespeichert sind, welcher Datenbankserver enthält:
einen gemeinsam genutzten Cache, der eine Vielzahl von Speichern enthält, die mit der Datenbank in Kommunikationsverbindung stehen, wobei jeder der Speicher eine Kopie einer anderen Datenbankkomponente enthält;
einen Speicherzugang, der mit jedem der Speicher verbunden ist, wobei jeder der Speicherzugänge den Zugriff auf den zugehörigen Speicher steuert; und
einen Clientthread für jeden der mehreren Clients, wobei jeder der Clientthreads eine Serverkomponente enthält, die mit einem der Speicherzugänge kommuniziert, um Zugriff auf den zu diesem einen Speicherzugang gehörigen Speicher zu erhalten, und die mit einem der mehreren Clients im Hinblick auf die in dem Speicher, der dem einen der Speicherzugänge zugehörig ist, gespeicherte Datenbankkomponente kommuniziert;
wobei jeder der Speicherzugänge mit einer einzelnen Serverkomponente in Kommunikation steht, wenn nur einer der mehreren Clients auf die in dem Speicher, der zu dem Speicherzugang gehört, gespeicherte Datenbankkomponente zugreift, und wobei jeder der Speicherzugänge mit zwei oder mehr Serverkomponenten kommuniziert, wenn zwei oder mehr der mehreren Clients auf die in dem zu dem Speicherzugang gehörigen Speicher gespeicherte Datenbankkomponente zugreifen.
einen gemeinsam genutzten Cache, der eine Vielzahl von Speichern enthält, die mit der Datenbank in Kommunikationsverbindung stehen, wobei jeder der Speicher eine Kopie einer anderen Datenbankkomponente enthält;
einen Speicherzugang, der mit jedem der Speicher verbunden ist, wobei jeder der Speicherzugänge den Zugriff auf den zugehörigen Speicher steuert; und
einen Clientthread für jeden der mehreren Clients, wobei jeder der Clientthreads eine Serverkomponente enthält, die mit einem der Speicherzugänge kommuniziert, um Zugriff auf den zu diesem einen Speicherzugang gehörigen Speicher zu erhalten, und die mit einem der mehreren Clients im Hinblick auf die in dem Speicher, der dem einen der Speicherzugänge zugehörig ist, gespeicherte Datenbankkomponente kommuniziert;
wobei jeder der Speicherzugänge mit einer einzelnen Serverkomponente in Kommunikation steht, wenn nur einer der mehreren Clients auf die in dem Speicher, der zu dem Speicherzugang gehört, gespeicherte Datenbankkomponente zugreift, und wobei jeder der Speicherzugänge mit zwei oder mehr Serverkomponenten kommuniziert, wenn zwei oder mehr der mehreren Clients auf die in dem zu dem Speicherzugang gehörigen Speicher gespeicherte Datenbankkomponente zugreifen.
36. Datenbankserver nach Anspruch 35, ferner enthaltend
einen Benachrichtigungsthread, der eine
Benachrichtigungsmaschine hat, die eine Veränderung
erfaßt, die an einer der Datenbankkomponenten
vorgenommen wurde, und die einen der Speicherzugänge
über die erfaßte Veränderung benachrichtigt.
37. Datenbankserver nach Anspruch 36, dadurch
gekennzeichnet, daß der eine der Speicherzugänge die
Serverkomponenten, die mit dem einen der Speicherzugänge
in Kommunikation stehen, über die erfaßte Veränderung
benachrichtigt, wobei die benachrichtigten
Serverkomponenten die Clients, mit welchen die
benachrichtigten Serverkomponenten kommunizieren, über
die erfaßte Veränderung benachrichtigen.
38. Datenbankserver nach Anspruch 37, dadurch
gekennzeichnet, daß die benachrichtigten
Serverkomponenten die erfaßte Veränderung an Clients
weitergeben, mit welchen die benachrichtigten
Serverkomponenten kommunizieren.
39. Datenbankserver nach Anspruch 35, ferner enthaltend
einen Verriegelungsmanager, der veranlaßt, daß jeder der
Speicherzugänge Schreibvorgänge in dem zugängigen
Speicher verhindert.
40. Datenbankserver nach Anspruch 39, dadurch
gekennzeichnet, daß die beiden Speicherzugänge eine
Parent/Child-Beziehung, also eines übergeordneten
Elements und eines untergeordneten Elements haben, so
daß einer der beiden Speicherzugänge ein übergeordneter
Speicherzugang ist und der andere der beiden
Speicherzugänge ein untergeordneter Speicherzugang ist,
wobei der Verriegelungsmanager eine Verriegelung des
untergeordneten Speicherzugangs veranlaßt, wenn der
Verriegelungsmanager eine Verriegelung des
übergeordneten Speicherzugangs veranlaßt.
41. Datenbankserver, der zur Verwendung in einem
Prozeßsteuersystem ausgelegt ist, um mehreren Clients
gleichzeitigen Zugriff auf Datenbankkomponenten zu
gewähren, die in einer Datenbank gespeichert sind,
welcher Datenbankserver enthält:
einen gemeinsam genutzten Cache;
ein erstes Element, das in dem gemeinsam genutzten Cache einen Speicher für die Datenbankkomponente schafft, wenn auf die Datenbankkomponente von einem oder mehreren der mehreren Clients zugegriffen wird; und
eine Clientthread-Routine, die einen Clientthread für jeden der mehreren Clients erstellt, wobei jeder der Clientthreads eine Serverkomponente enthält, die mit einem der Clients kommuniziert und die mit dem Speicher kommuniziert, um dadurch Zugriff durch einen der Clients auf die in dem Speicher gespeicherte Datenbankkomponente zu ermöglichen;
wobei der Speicher so ausgelegt ist, daß er mit einer einzelnen Serverkomponente kommuniziert, wenn nur einer der mehreren Clients auf die Datenbankkomponente zugreift, und wobei der Speicher so ausgelegt ist, daß er mit zwei oder mehr Serverkomponenten kommuniziert, wenn zwei oder mehr der mehreren Clients auf die Datenbankkomponente zugreifen.
einen gemeinsam genutzten Cache;
ein erstes Element, das in dem gemeinsam genutzten Cache einen Speicher für die Datenbankkomponente schafft, wenn auf die Datenbankkomponente von einem oder mehreren der mehreren Clients zugegriffen wird; und
eine Clientthread-Routine, die einen Clientthread für jeden der mehreren Clients erstellt, wobei jeder der Clientthreads eine Serverkomponente enthält, die mit einem der Clients kommuniziert und die mit dem Speicher kommuniziert, um dadurch Zugriff durch einen der Clients auf die in dem Speicher gespeicherte Datenbankkomponente zu ermöglichen;
wobei der Speicher so ausgelegt ist, daß er mit einer einzelnen Serverkomponente kommuniziert, wenn nur einer der mehreren Clients auf die Datenbankkomponente zugreift, und wobei der Speicher so ausgelegt ist, daß er mit zwei oder mehr Serverkomponenten kommuniziert, wenn zwei oder mehr der mehreren Clients auf die Datenbankkomponente zugreifen.
42. Datenbankserver nach Anspruch 41, dadurch
gekennzeichnet, daß das erste Element ferner einen
Speicherzugang schafft, der zu dem Speicher gehört,
wobei der Speicherzugang so ausgelegt ist, daß er mit
den Serverkomponenten in zwei oder mehr der
Clientthreads kommuniziert, um Zugriff auf den
zugehörigen Speicher durch jede der Serverkomponenten in
den zwei oder mehr Clientthreads zu gewähren, wenn zwei
oder mehr Clients auf die Datenbankkomponente zugreifen.
43. Datenbankserver nach Anspruch 42, dadurch
gekennzeichnet, daß der Speicher ein transaktionales
Objekt nutzt, um auf die Datenbankkomponente in der
Datenbank zuzugreifen.
44. Datenbankserver nach Anspruch 42, ferner enthaltend
einen Benachrichtigungsthread, der eine
Benachrichtigungsmaschine und einen Plan hat, wobei die
Benachrichtigungsmaschine eine Veränderung an der
Datenbankkomponente innerhalb der Datenbank erfaßt und
den Plan benutzt, den Speichereingang über die erfaßte
Veränderung zu benachrichtigen.
45. Datenbankserver nach Anspruch 44, dadurch
gekennzeichnet, daß der Speichereingang alle
Serverkomponenten, mit welchen der Speichereingang in
Verbindung steht, über die erfaßte Veränderung an der
Datenbankkomponente in Kenntnis setzt, wobei die
benachrichtigten Serverkomponenten die Clients, mit
welchen die benachrichtigten Serverkomponenten
kommunizieren, über die erfaßte Veränderung
benachrichtigen.
46. Datenbankserver nach Anspruch 44, dadurch
gekennzeichnet, daß der Speicherzugang den Speicher
veranlaßt, die Datenbankkomponente aus der Datenbank
auszulesen, wenn die Benachrichtigungsmaschine den
Speicherzugang über die erfaßte Veränderung an der
Datenbankkomponente innerhalb der Datenbank
benachrichtigt.
47. Datenbankserver nach Anspruch 44, dadurch
gekennzeichnet, daß der Benachrichtigungsthread eine
Veränderungsliste benutzt, die von der Datenbank erzeugt
wird, um die Änderung an der Datenbankkomponente
innerhalb der Datenbank zu erfassen.
48. Datenbankserver nach Anspruch 44, ferner enthaltend
einen Laufzeitservicebenachrichtigungsthread, der eine
Veränderung an der Datenbankkomponente, basierend auf
der Operation von Laufzeitanwendungen erfaßt, die in dem
Prozeßsteuersystem ausgeführt werden, und der den
Speicherzugang über die erfaßte Veränderung
benachrichtigt.
49. Datenbankserver nach Anspruch 41, dadurch
gekennzeichnet, daß mindestens eine der
Serverkomponenten so ausgelegt ist, daß sie mit einem
der mehreren Clients über eine
Satellitenkommunikationsverbindung kommuniziert.
50. Datenbankserver nach Anspruch 41, dadurch
gekennzeichnet, daß mindestens eine der
Serverkomponenten so ausgelegt ist, daß sie mit einem
der mehreren Clients über eine zelluläre
Kommunikationsverbindung kommuniziert.
51. Datenbankserver nach Anspruch 41, dadurch
gekennzeichnet, daß mindestens eine der
Serverkomponenten so ausgelegt ist, daß sie mit einem
der mehreren Clients über eine drahtlose
Kommunikationsverbindung kommuniziert.
52. Datenbankserver nach Anspruch 41, dadurch
gekennzeichnet, daß mindestens eine der
Serverkomponenten so ausgelegt ist, daß sie mit einem
der mehreren Clients über eine
Telefonkommunikationsverbindung kommuniziert.
53. Datenbankserver nach Anspruch 41, ferner enthaltend
einen Verriegelungsmanager, der den Speicher verriegelt,
wenn einer der mehreren Clients auf den Speicher
zugreift, um den Zugriff auf den Speicher durch andere
der mehreren Clients zu verhindern.
54. Datenbankserver nach Anspruch 41, ferner enthaltend
einen Kontextspeicher, wobei der Speicher einen ersten
Abschnitt des Kontextspeichers nutzt, wenn er mit der
Datenbank im Namen eines ersten der Clients
kommuniziert, und einen zweiten, davon verschiedenen
Abschnitt des Kontextspeichers nutzt, wenn er mit der
Konfigurationsdatenbank namens eines zweiten Clients
kommuniziert.
55. Verfahren um mehreren Clients Zugriff auf eine
Datenbankkomponente zu gewähren, die in einer Datenbank
gespeichert ist, welches Verfahren die Schritte enthält:
Erstellen eines Speicherobjektes in einem gemeinsam genutzten Cache, wobei das Speicherobjekt mit der Datenbank kommuniziert, um im Hinblick auf die Datenbankkomponente aus der Datenbank zu lesen oder in die Datenbank zu schreiben;
Verwenden eines ersten Clientthreads, um eine Kommunikation zwischen einem ersten der Clients und der Datenbankkomponente zu schaffen, wobei der Schritt des Verwendens des ersten Clientthreads die Schritte enthält;
Erstellen einer ersten Kommunikationskomponente, die mit dem ersten Client hinsichtlich der Datenbankkomponente kommuniziert; und
Schaffen einer Verbindung zwischen der ersten Kommunikationskomponente und dem Speicherobjekt; und
Verwenden eines zweiten Clientthreads, um die Kommunikation zwischen einem der zweiten der Clients und der Datenbankkomponente herzustellen, wobei der Schritt des Verwendens des zweiten Clientthreads die Schritte enthält;
Erstellen einer zweiten Kommunikationskomponente, die mit dem zweiten Clients hinsichtlich der Datenbankkomponente kommuniziert; und
Erstellen einer Verbindung zwischen der zweiten Kommunikationskomponente und dem Speicherobjekt.
Erstellen eines Speicherobjektes in einem gemeinsam genutzten Cache, wobei das Speicherobjekt mit der Datenbank kommuniziert, um im Hinblick auf die Datenbankkomponente aus der Datenbank zu lesen oder in die Datenbank zu schreiben;
Verwenden eines ersten Clientthreads, um eine Kommunikation zwischen einem ersten der Clients und der Datenbankkomponente zu schaffen, wobei der Schritt des Verwendens des ersten Clientthreads die Schritte enthält;
Erstellen einer ersten Kommunikationskomponente, die mit dem ersten Client hinsichtlich der Datenbankkomponente kommuniziert; und
Schaffen einer Verbindung zwischen der ersten Kommunikationskomponente und dem Speicherobjekt; und
Verwenden eines zweiten Clientthreads, um die Kommunikation zwischen einem der zweiten der Clients und der Datenbankkomponente herzustellen, wobei der Schritt des Verwendens des zweiten Clientthreads die Schritte enthält;
Erstellen einer zweiten Kommunikationskomponente, die mit dem zweiten Clients hinsichtlich der Datenbankkomponente kommuniziert; und
Erstellen einer Verbindung zwischen der zweiten Kommunikationskomponente und dem Speicherobjekt.
56. Verfahren nach Anspruch 55, dadurch gekennzeichnet, daß
der Schritt des Erstellens des Speicherobjekts den
Schritt des Erstellens eines Speicherobjektzugangs
enthält, der zu dem Speicherobjekt gehört, wobei der
Speicherobjektzugang so ausgelegt ist, daß er mit den
Serverkomponenten in dem ersten und dem zweiten
Clientthread kommuniziert, um Zugriff auf das
Speicherobjekt für jede der Speicherkomponenten in dem
ersten und dem zweiten Clientthread zu gewähren.
57. Verfahren nach Anspruch 56, enthaltend den Schritt der
Verwendung eines Transaktionsobjektes für den Zugriff
auf die Datenbankkomponente innerhalb der Datenbank und
um Kommunikation zwischen dem Speicherobjekt und der
Datenbank zu schaffen.
58. Verfahren nach Anspruch 56, ferner enthaltend den
Schritt des Erfassens einer Veränderung an der
Datenbankkomponente innerhalb der Datenbank und des
Benachrichtigens des Speicherobjektzugangs über die
Veränderung.
59. Verfahren nach Anspruch 58, ferner enthaltend den
Schritt des Verwendens des Speicherobjektzugangs zur
Benachrichtigung aller Serverkomponenten, mit welchem
der Speicherobjektzugang kommuniziert, über die erfaßte
Veränderung an der Datenbankkomponente, und enthaltend
den Schritt des Mitteilens der erfaßten Veränderung an
der Datenbankkomponente von den benachrichtigten
Serverkomponenten an die Clients, mit welchen die
benachrichtigten Serverkomponenten kommunizieren.
60. Verfahren nach Anspruch 59, ferner enthaltend den
Schritt des Veranlassens des Speicherobjekts, die
Datenbankkomponente aus der Datenbank auszulesen, wenn
die Veränderung an der Datenbankkomponente erfaßt wird.
61. Verfahren nach Anspruch 59, dadurch gekennzeichnet, daß
der Schritt des Bekanntgebens der erfaßten Veränderung
von den benachrichtigten Serverkomponenten an die
Clients den Schritt des Verwendens einer
Satellitenkommunikationsverbindung einschließt, um die
Kommunikation zwischen einer der Serverkomponenten und
einem der Clients herzustellen.
62. Verfahren nach Anspruch 59, dadurch gekennzeichnet, daß
der Schritt des Bekanntgebens der erfaßten Veränderung
von den benachrichtigten Serverkomponenten an die
Clients den Schritt des Verwendens einer drahtlosen
Kommunikationsverbindung einschließt, um die
Kommunikation zwischen einer der Serverkomponenten und
einem der Clients herzustellen.
63. Verfahren nach Anspruch 59, dadurch gekennzeichnet, daß
der Schritt des Bekanntgebens der erfaßten Veränderung
von den benachrichtigten Serverkomponenten an die
Clients den Schritt des Verwendens einer
Telefonleitungs-Kommunikationsverbindung einschließt, um
die Kommunikation zwischen einer der Serverkomponenten
und einem der Clients herzustellen.
64. Verfahren nach Anspruch 59, ferner enthaltend den
Schritt des Verriegelns des Speicherobjekts, wenn einer
der mehreren Clients auf das Speicherobjekt zugreift, um
den Zugriff auf das Speicherobjekt durch andere der
mehreren Clients zu verhindern.
65. Verfahren zur Verwendung eines Datenbankservers, um
einer Vielzahl von Clients gleichzeitigen Zugriff auf
Komponenten zu ermöglichen, die in einer Datenbank
gespeichert sind, welche einen gemeinsam genutzten Cache
hat, welches Verfahren die Schritte enthält:
Durchführen der folgenden drei Schritte, wenn ein Client Zugriff auf eine Komponente innerhalb der Datenbank anfordert;
wobei dann, wenn zwei oder mehr Clients auf dieselbe Komponente zugreifen, zwei oder mehr Kommunikationskomponentenobjekte mit demselben gemeinsam genutzten Speicherobjekt kommunikativ verbunden werden.
Durchführen der folgenden drei Schritte, wenn ein Client Zugriff auf eine Komponente innerhalb der Datenbank anfordert;
- 1. Schaffen eines Kommunikationskomponentenobjekts innerhalb eines Datenbankservers, das mit dem Client hinsichtlich der Komponente kommuniziert;
- 2. Feststellen, ob ein gemeinsam genutztes Speicherobjekt innerhalb des gemeinsam genutzten Cache für die Komponente eingerichtet wurde, und Erstellen des gemeinsam genutzten Speicherobjekts für die Komponente innerhalb des gemeinsam genutzten Cache, wenn das gemeinsam genutzte Speicherobjekt nicht in dem gemeinsam genutzten Cache eingerichtet wurde; und
- 3. Vorsehen einer Kommunikationsverbindung zwischen dem gemeinsam genutzten Speicherobjekt und der Kommunikationskomponente; und
wobei dann, wenn zwei oder mehr Clients auf dieselbe Komponente zugreifen, zwei oder mehr Kommunikationskomponentenobjekte mit demselben gemeinsam genutzten Speicherobjekt kommunikativ verbunden werden.
66. Verfahren nach Anspruch 65, ferner enthaltend den
Schritt des Erfassens einer Veränderung an einer der
Komponenten und Benachrichtigens jedes der Clients, die
auf eine der Komponenten zugreifen, über die erfaßte
Veränderung.
67. Verfahren nach Anspruch 66, ferner enthaltend einen
Schritt, in dem veranlaßt wird, daß das gemeinsam
genutzte Speicherobjekt für die eine der Komponenten die
veränderte Komponente aus der Datenbank ausliest.
68. Verfahren nach Anspruch 66, ferner enthaltend den
Schritt des Verriegelns eines der gemeinsam genutzten
Speicherobjekte, wenn eine der Kommunikationskomponenten
auf dieses eine der gemeinsam genutzten Speicherobjekte
zugreift, um dadurch zu verhindern, daß andere
Kommunikationsobjekte auf die gemeinsam genutzte
Speicherkomponente zugreifen, wenn dieses eine der
Kommunikationsobjekte Zugriff auf das gemeinsam genutzte
Speicherobjekt hat.
69. Prozeßsteuersystem, enthaltend:
eine Datenbank, die an einem ersten physischen Ort angeordnet ist, wobei die Datenbank Datenbankkomponenten speichert;
eine Vielzahl von Client-Anwendungen, wobei eine der Client-Anwendungen an einem zweiten physischen Ort angeordnet ist, der im wesentlichen von dem ersten physischen Ort geographisch getrennt ist;
eine Kommunikationsverbindung zwischen dem ersten physischen Ort und dem zweiten physischen Ort; und
einen Datenbankserver, der für die Vielzahl der Client- Anwendungen Zugriff auf die Datenbankkomponenten in der Datenbank bietet, welcher Datenbankserver enthält;
einen gemeinsam genutzten Cache, der eine Vielzahl von Speicherobjekten hat, wobei jedes der Speicherobjekte mit der Datenbank kommuniziert und eine Kopie einer der Datenbankkomponenten speichert, auf die von mindestens einem der Vielzahl von Clients zugegriffen wird; und
ein oder mehrere Kommunikationsobjekte, die zu jeder der Client-Anwendungen gehören, wobei jedes der Kommunikationsobjekte mit einer zugehörigen Client- Anwendung und mit einem der Speicherobjekte kommuniziert;
wobei ein Speicherobjekt, auf das von zwei oder mehr Client-Anwendungen zugegriffen wird, mit zwei oder mehr Kommunikationsobjekten kommunikativ verbunden ist.
eine Datenbank, die an einem ersten physischen Ort angeordnet ist, wobei die Datenbank Datenbankkomponenten speichert;
eine Vielzahl von Client-Anwendungen, wobei eine der Client-Anwendungen an einem zweiten physischen Ort angeordnet ist, der im wesentlichen von dem ersten physischen Ort geographisch getrennt ist;
eine Kommunikationsverbindung zwischen dem ersten physischen Ort und dem zweiten physischen Ort; und
einen Datenbankserver, der für die Vielzahl der Client- Anwendungen Zugriff auf die Datenbankkomponenten in der Datenbank bietet, welcher Datenbankserver enthält;
einen gemeinsam genutzten Cache, der eine Vielzahl von Speicherobjekten hat, wobei jedes der Speicherobjekte mit der Datenbank kommuniziert und eine Kopie einer der Datenbankkomponenten speichert, auf die von mindestens einem der Vielzahl von Clients zugegriffen wird; und
ein oder mehrere Kommunikationsobjekte, die zu jeder der Client-Anwendungen gehören, wobei jedes der Kommunikationsobjekte mit einer zugehörigen Client- Anwendung und mit einem der Speicherobjekte kommuniziert;
wobei ein Speicherobjekt, auf das von zwei oder mehr Client-Anwendungen zugegriffen wird, mit zwei oder mehr Kommunikationsobjekten kommunikativ verbunden ist.
70. Prozeßsteuersystem nach Anspruch 69, dadurch
gekennzeichnet, daß der Datenbankserver ferner eine
Benachrichtigungsroutine enthält, die Veränderungen an
einer der Datenbankkomponenten erfaßt und die
automatisch jeden der Clients, die auf diese eine der
Datenbankkomponenten zugreifen, von der Existenz der
Veränderung an dieser einen der Datenbankkomponenten
benachrichtigt.
71. Prozeßsteuersystem nach Anspruch 70, dadurch
gekennzeichnet, daß die Benachrichtigungsroutine jeden
der Clients, die auf die eine der Datenbankkomponenten
zugreifen, über den Status der einen der
Datenbankkomponenten nach der Veränderung
benachrichtigt.
72. Prozeßsteuersystem nach Anspruch 70, dadurch
gekennzeichnet, daß die Datenbank eine
Konfigurationsdatenbank ist, wobei die
Datenbankkomponenten Konfigurationskomponenten sind.
73. Prozeßsteuersystem nach Anspruch 70, dadurch
gekennzeichnet, daß jedes der Kommunikationsobjekte so
ausgelegt ist, daß es in das eine zugehörige
Speicherobjekt schreiben und aus diesem lesen kann.
74. Prozeßsteuersystem nach Anspruch 70, dadurch
gekennzeichnet, daß der Datenbankserver ferner einen
Verriegelungsmanager enthält, der verhindert, daß eine
erste der Kommunikationskomponenten auf eines der
Speicherobjekte zugreift, wenn eine zweite der
Kommunikationskomponenten auf das eine Speicherobjekt
zugreift.
75. Prozeßsteuersystem nach Anspruch 69, dadurch
gekennzeichnet, daß die Kommunikationsverbindung eines
Satellitenkommunikationsverbindung ist.
76. Prozeßsteuersystem nach Anspruch 69, dadurch
gekennzeichnet, daß die Kommunikationsverbindung eine
zelluläre Kommunikationsverbindung ist.
77. Prozeßsteuersystem nach Anspruch 69, dadurch
gekennzeichnet, daß die Kommunikationsverbindung eine
Telefonleitungskommunikationsverbindung ist.
76. Prozeßsteuersystem nach Anspruch 69, dadurch
gekennzeichnet, daß die Kommunikationsverbindung eine
drahtlose Kommunikationsverbindung ist.
79. Prozeßsteuersystem nach Anspruch 69, dadurch
gekennzeichnet, daß die Kommunikationsverbindung eine
Wide Area Network Verbindung ist.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US560199 | 1995-11-21 | ||
US160104 | 1998-09-25 | ||
US16010499P | 1999-10-18 | 1999-10-18 | |
US09/560,199 US6687698B1 (en) | 1999-10-18 | 2000-04-28 | Accessing and updating a configuration database from distributed physical locations within a process control system |
Publications (2)
Publication Number | Publication Date |
---|---|
DE10049569A1 true DE10049569A1 (de) | 2001-04-19 |
DE10049569B4 DE10049569B4 (de) | 2012-03-01 |
Family
ID=26856604
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE10049569A Expired - Lifetime DE10049569B4 (de) | 1999-10-18 | 2000-10-06 | Zugriff und Aktualisierung einer Konfigurationsdatenbank von verteilten physischen Orten innerhalb eines Prozeßsteuerungssystems |
Country Status (5)
Country | Link |
---|---|
US (2) | US6687698B1 (de) |
JP (4) | JP4731669B2 (de) |
DE (1) | DE10049569B4 (de) |
GB (1) | GB2363872B (de) |
HK (1) | HK1061901A1 (de) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003025688A1 (de) * | 2001-09-10 | 2003-03-27 | Siemens Aktiengesellschaft | Verfahren zur verschaltung von automatisierungsfunktionen in einer anlage und verfahren zur abfrage und änderung von verschaltungsinformationen |
WO2003073191A2 (de) * | 2002-02-26 | 2003-09-04 | Endress + Hauser Process Solutions Ag | Verfahren zum übertragen von feldgerätedaten an eine externe datenbank |
DE102004007231A1 (de) * | 2004-02-13 | 2005-09-08 | Siemens Ag | Verfahren zum Konfigurieren einer Automatisierungskomponente eines Automatisierungssystems und entsprechendes Automatisierungssystem |
WO2010060977A1 (de) * | 2008-11-27 | 2010-06-03 | Siemens Aktiengesellschaft | Verfahren zum erstellen einer leittechnischen einrichtung für eine industrieanlage |
CN110457395A (zh) * | 2019-08-15 | 2019-11-15 | 中国银行股份有限公司 | 假日数据的同步方法及装置 |
Families Citing this family (236)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6911987B1 (en) * | 1995-07-05 | 2005-06-28 | Microsoft Corporation | Method and system for transmitting data for a shared application |
EP0825506B1 (de) * | 1996-08-20 | 2013-03-06 | Invensys Systems, Inc. | Verfahren und Gerät zur Fernprozesssteuerung |
US7010532B1 (en) * | 1997-12-31 | 2006-03-07 | International Business Machines Corporation | Low overhead methods and apparatus for shared access storage devices |
US7089530B1 (en) | 1999-05-17 | 2006-08-08 | Invensys Systems, Inc. | Process control configuration system with connection validation and configuration |
AU5025600A (en) * | 1999-05-17 | 2000-12-05 | Foxboro Company, The | Process control configuration system with parameterized objects |
US6978294B1 (en) * | 2000-03-20 | 2005-12-20 | Invensys Systems, Inc. | Peer-to-peer hosting of intelligent field devices |
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 |
GB2394334B (en) * | 1999-10-18 | 2004-07-21 | Fisher Rosemount Systems Inc | Accessing and updating a configuration database from distributed physical locations within a process control system |
US6687698B1 (en) | 1999-10-18 | 2004-02-03 | Fisher Rosemount Systems, Inc. | Accessing and updating a configuration database from distributed physical locations within a process control system |
US7289994B2 (en) | 1999-10-18 | 2007-10-30 | Fisher-Rosemount Systems, Inc. | Interconnected zones within a process control system |
US6671825B1 (en) | 1999-11-19 | 2003-12-30 | Oracle International Corporation | Method and apparatus for debugging a software program |
US6839894B1 (en) * | 1999-11-19 | 2005-01-04 | Oracle International Corporation | Method and apparatus for debugging a software program using dynamic debug patches and copy on write views |
DE10048942B4 (de) * | 1999-12-01 | 2008-07-03 | International Business Machines Corp. | Verfahren und System zur Wartung von Software über ein Netz |
AU2001245447A1 (en) * | 2000-03-06 | 2001-09-17 | Kanisa Inc. | A system and method for providing an intelligent multi-step dialog with a user |
US20010032257A1 (en) * | 2000-04-12 | 2001-10-18 | Wells Ronald B. | Method and system for managing information on a network |
US6842769B1 (en) * | 2000-05-05 | 2005-01-11 | Interland, Inc. | Automatically configured network server |
US20030202645A1 (en) * | 2000-05-25 | 2003-10-30 | Fujitsu Network Communications, Inc., A California Corporation | Element management system with adaptive interface based on autodiscovery from element identifier |
US7693961B2 (en) * | 2000-06-30 | 2010-04-06 | Sharp Kabushiki Kaisha | Method and system for supplying programs |
US7181507B1 (en) * | 2000-07-18 | 2007-02-20 | Harrow Products Llc | Internet based access point management system |
EP1309924A2 (de) * | 2000-08-03 | 2003-05-14 | Prelude Systems, Inc. | System und verfahren für die kommunikation zwischen endgeräten und server |
US7120935B2 (en) * | 2000-08-10 | 2006-10-10 | Shield Security Systems, Llc | Interactive key control system and method of managing access to secured locations |
US7216132B1 (en) * | 2000-08-16 | 2007-05-08 | Sparta Systems, Inc. | System and method for automated process control |
US7089335B2 (en) * | 2000-10-30 | 2006-08-08 | Microsoft Corporation | Bridging multiple network segments and exposing the multiple network segments as a single network to a higher level networking software on a bridging computing device |
US7383355B1 (en) * | 2000-11-01 | 2008-06-03 | Sun Microsystems, Inc. | Systems and methods for providing centralized management of heterogeneous distributed enterprise application integration objects |
US7085824B2 (en) * | 2001-02-23 | 2006-08-01 | Power Measurement Ltd. | Systems for in the field configuration of intelligent electronic devices |
US6883172B1 (en) * | 2001-03-29 | 2005-04-19 | Microsoft Corporation | System and method for bridging managed and unmanaged object systems by utilizing an interface wrapper to facilitate transparent communications |
US7139793B2 (en) * | 2001-05-01 | 2006-11-21 | International Business Machines Corporation | Method for conveniently enabling a web server to provide commercial promotions using compiled code |
US7139817B1 (en) * | 2001-06-12 | 2006-11-21 | Network Appliance, Inc. | Managing configuration information for multiple devices |
DE60228958D1 (de) * | 2001-06-21 | 2008-10-30 | Ericsson Telefon Ab L M | Verfahren zur sicheren dateiübertagung an eine vielzahl von zieladressen mit integritätsprüfung |
EP1407388A4 (de) * | 2001-06-27 | 2005-05-04 | Compumedics Ltd | Verteiltes ereignisbenachrichtigungssystem |
US6950832B2 (en) * | 2001-07-31 | 2005-09-27 | International Business Machines Corporation | Method for dynamically allocating a device in an LPAR system |
JP2003108412A (ja) * | 2001-10-02 | 2003-04-11 | Hitachi Ltd | ストレージ管理方式 |
US6748470B2 (en) * | 2001-11-13 | 2004-06-08 | Microsoft Corporation | Method and system for locking multiple resources in a distributed environment |
US7406519B2 (en) * | 2001-11-13 | 2008-07-29 | Microsoft Corporation | Method and system for locking resources in a distributed environment |
US20030105871A1 (en) * | 2001-11-13 | 2003-06-05 | Microsoft Corporation, | Method and system for modifying lock properties in a distributed environment |
US7028300B2 (en) * | 2001-11-13 | 2006-04-11 | Microsoft Corporation | Method and system for managing resources in a distributed environment that has an associated object |
DE10200165A1 (de) * | 2002-01-04 | 2003-07-10 | Klaus Rock | Verfahren zur Reduzierung der Latenzzeit bei der interaktiven Datenkommunikation über ein Satellitennetzwerk |
US7991849B1 (en) * | 2002-01-31 | 2011-08-02 | Ciena Corporation | System for managing configuration memory with transaction and redundancy support in an optical network element |
US20030177210A1 (en) * | 2002-03-12 | 2003-09-18 | Stringham Gary G. | Method and device for specifying initialization tasks for a peripheral device |
US20040139089A1 (en) * | 2002-03-29 | 2004-07-15 | Wells Ronald B. | Method and system for managing information on a network |
US7418664B2 (en) * | 2002-04-03 | 2008-08-26 | Microsoft Corporation | Application sharing single document sharing |
US7028266B2 (en) * | 2002-04-05 | 2006-04-11 | Microsoft Corporation | Processing occluded windows during application sharing |
US8756513B1 (en) | 2002-04-23 | 2014-06-17 | Microsoft Corporation | Document viewing mechanism for document sharing environment |
US20030204714A1 (en) * | 2002-04-24 | 2003-10-30 | Rothman Michael A. | Methods and apparatuses for uniform configuration for a computer system |
US7319921B2 (en) * | 2002-05-22 | 2008-01-15 | Underwood Fred R | Water treatment control system |
US7293243B1 (en) | 2002-05-22 | 2007-11-06 | Microsoft Corporation | Application sharing viewer presentation |
US20040019640A1 (en) * | 2002-07-25 | 2004-01-29 | Bartram Linda Ruth | System and method for distributing shared storage for collaboration across multiple devices |
US7433915B2 (en) * | 2002-08-01 | 2008-10-07 | Xerox Corporation | System and method for controlling communication |
CA2406079C (en) * | 2002-09-30 | 2010-03-30 | Ibm Canada Limited-Ibm Canada Limitee | System and method for synchronizing data repositories |
US7146231B2 (en) | 2002-10-22 | 2006-12-05 | Fisher-Rosemount Systems, Inc.. | Smart process modules and objects in process plants |
DE10348563B4 (de) * | 2002-10-22 | 2014-01-09 | Fisher-Rosemount Systems, Inc. | Integration von Grafikdisplayelementen, Prozeßmodulen und Steuermodulen in Prozeßanlagen |
US9983559B2 (en) | 2002-10-22 | 2018-05-29 | Fisher-Rosemount Systems, Inc. | Updating and utilizing dynamic process simulation in an operating process environment |
US7257705B2 (en) * | 2002-11-18 | 2007-08-14 | Sparta Systems, Inc. | Method for preserving changes made during a migration of a system's configuration to a second configuration |
US7797404B1 (en) * | 2002-11-27 | 2010-09-14 | Symantec Operting Corporation | Automatic server configuration using a storage configuration database |
US7361249B2 (en) * | 2002-12-05 | 2008-04-22 | Multimedia Games, Inc. | Apparatus for applying a removable cover to a ticket substrate |
US20040216084A1 (en) * | 2003-01-17 | 2004-10-28 | Brown Albert C. | System and method of managing web content |
US20040225730A1 (en) * | 2003-01-17 | 2004-11-11 | Brown Albert C. | Content manager integration |
US7330768B2 (en) * | 2003-01-28 | 2008-02-12 | Fisher-Rosemount Systems, Inc. | Integrated configuration in a process plant having a process control system and a safety system |
US7865251B2 (en) | 2003-01-28 | 2011-01-04 | Fisher-Rosemount Systems, Inc. | Method for intercontroller communications in a safety instrumented system or a process control system |
US7809679B2 (en) | 2003-03-03 | 2010-10-05 | Fisher-Rosemount Systems, Inc. | Distributed data access methods and apparatus for process control systems |
US7275062B2 (en) * | 2003-03-10 | 2007-09-25 | Fisher-Rosemount Systems, Inc. | Automatic linkage of process event data to a data historian |
US9448860B2 (en) * | 2003-03-21 | 2016-09-20 | Oracle America, Inc. | Method and architecture for providing data-change alerts to external applications via a push service |
US20040199727A1 (en) * | 2003-04-02 | 2004-10-07 | Narad Charles E. | Cache allocation |
TW200509604A (en) * | 2003-05-08 | 2005-03-01 | Matsushita Electric Ind Co Ltd | Message processor, apparatus controlling device, home electrical appliance, program for message processor, microcomputer system, program for microcomputer system, and program product |
US7634555B1 (en) | 2003-05-16 | 2009-12-15 | Johnson Controls Technology Company | Building automation system devices |
US7502323B2 (en) | 2003-05-28 | 2009-03-10 | Schneider Electric Industries Sas | Access control system for automation equipment |
FR2855621B1 (fr) * | 2003-05-28 | 2005-07-01 | Schneider Electric Ind Sas | Systeme de controle d'acces a un equipement d'automatisme |
US7577960B2 (en) * | 2003-06-19 | 2009-08-18 | Microsoft Corporation | System and method for managing cached objects using notifications bonds |
US20050010462A1 (en) * | 2003-07-07 | 2005-01-13 | Mark Dausch | Knowledge management system and methods for crude oil refining |
WO2005008440A2 (en) * | 2003-07-11 | 2005-01-27 | Computer Associates Think, Inc. | System and method for common storage object model |
US6934356B1 (en) | 2003-07-22 | 2005-08-23 | General Electric Company | System and method for dynamic generation of a single user interface for displaying and entry of medical imaging configuration data |
US7191021B2 (en) * | 2003-12-04 | 2007-03-13 | Honeywell International | Remote management of field devices in a manufacturing plant |
US20050138068A1 (en) * | 2003-12-17 | 2005-06-23 | Greg Wilbur | Configuration editing |
US20050198255A1 (en) * | 2003-12-23 | 2005-09-08 | Johnson Controls Technology Company | Value reporting using web services |
US20050165884A1 (en) * | 2003-12-29 | 2005-07-28 | Masek William J. | System and method for automated distributed account maintenance |
EP1702301A4 (de) * | 2004-01-06 | 2014-01-01 | Cerion Optimization Services Inc | System und verfahren zum analysieren strategischer netzwerkinvestitionen in drahtlosen netzwerken |
US7437551B2 (en) * | 2004-04-02 | 2008-10-14 | Microsoft Corporation | Public key infrastructure scalability certificate revocation status validation |
US7383271B2 (en) * | 2004-04-06 | 2008-06-03 | Microsoft Corporation | Centralized configuration data management for distributed clients |
US7590669B2 (en) * | 2004-04-06 | 2009-09-15 | Microsoft Corporation | Managing client configuration data |
CN101061454B (zh) * | 2004-04-15 | 2011-09-28 | 清晰路径网络股份有限公司 | 用于管理网络的系统和方法 |
JP2007536634A (ja) * | 2004-05-04 | 2007-12-13 | フィッシャー−ローズマウント・システムズ・インコーポレーテッド | プロセス制御システムのためのサービス指向型アーキテクチャ |
US7729789B2 (en) | 2004-05-04 | 2010-06-01 | Fisher-Rosemount Systems, Inc. | Process plant monitoring based on multivariate statistical analysis and on-line process simulation |
US20060004875A1 (en) * | 2004-05-11 | 2006-01-05 | Microsoft Corporation | CMDB schema |
US20050278279A1 (en) * | 2004-05-28 | 2005-12-15 | Petev Petio G | Native libraries descriptor with reference counting |
US7581204B2 (en) * | 2004-06-01 | 2009-08-25 | Sap Ag | Dynamic contexts |
US7406678B2 (en) * | 2004-06-14 | 2008-07-29 | Lucent Technologies Inc. | Manager component resource addition and/or resource removal on behalf of distributed software application |
US20050278386A1 (en) * | 2004-06-15 | 2005-12-15 | Geographic Data Technology, Inc. | Geospatial information system and method for updating same |
US7587594B1 (en) * | 2004-08-30 | 2009-09-08 | Microsoft Corporation | Dynamic out-of-process software components isolation for trustworthiness execution |
US20060064468A1 (en) * | 2004-09-20 | 2006-03-23 | Brown K R | Web services interface and object access framework |
US7606793B2 (en) * | 2004-09-27 | 2009-10-20 | Microsoft Corporation | System and method for scoping searches using index keys |
US7644107B2 (en) * | 2004-09-30 | 2010-01-05 | Microsoft Corporation | System and method for batched indexing of network documents |
US20060088145A1 (en) * | 2004-10-27 | 2006-04-27 | Bellsouth Intellectual Property Corporation | Methods and systems for an interactive communications directory and directory channel |
US20060100980A1 (en) * | 2004-10-27 | 2006-05-11 | Bellsouth Intellectual Property Corporation | Methods and systems for delivering yellow pages content to a media delivery device |
US7933868B2 (en) * | 2004-11-04 | 2011-04-26 | Microsoft Corporation | Method and system for partition level cleanup of replication conflict metadata |
WO2006053019A2 (en) | 2004-11-08 | 2006-05-18 | Sharpcast, Inc. | Method and apparatus for a file sharing and synchronization system |
JP4622474B2 (ja) * | 2004-11-17 | 2011-02-02 | 横河電機株式会社 | フィールド機器及びこれを用いたシステム |
JP2006253376A (ja) * | 2005-03-10 | 2006-09-21 | Oki Electric Ind Co Ltd | 半導体装置及びその製造方法 |
US7665098B2 (en) * | 2005-04-29 | 2010-02-16 | Microsoft Corporation | System and method for monitoring interactions between application programs and data stores |
US20060259466A1 (en) * | 2005-05-10 | 2006-11-16 | Sbc Knowledge Ventures Lp | Updating configuration specifications in a historical database |
US20060282830A1 (en) * | 2005-06-13 | 2006-12-14 | Microsoft Corporation | Analysis of the impact of application programs on resources stored in data stores |
US8655757B1 (en) * | 2005-06-30 | 2014-02-18 | Oracle International Corporation | System and method for assigning a unique asset identity |
US8200563B2 (en) * | 2005-09-23 | 2012-06-12 | Chicago Mercantile Exchange Inc. | Publish and subscribe system including buffer |
US7526794B2 (en) | 2005-09-30 | 2009-04-28 | Rockwell Automation Technologies, Inc. | Data perspectives in controller system and production management systems |
US20070260628A1 (en) * | 2006-05-02 | 2007-11-08 | Tele Atlas North America, Inc. | System and method for providing a virtual database environment and generating digital map information |
US20070130376A1 (en) * | 2005-12-02 | 2007-06-07 | Samsung Electronics Co., Ltd. | Method and apparatus for setting configuration information |
CN104834294A (zh) | 2005-12-05 | 2015-08-12 | 费舍-柔斯芒特系统股份有限公司 | 利用并行过程仿真的多目标预测过程优化 |
US8375122B2 (en) * | 2005-12-15 | 2013-02-12 | International Business Machines Corporation | Web service information management in service-oriented architecture applications |
US7856455B2 (en) * | 2006-03-01 | 2010-12-21 | International Business Machines Corporation | System, method and program product for generating triggers for a relational database |
FR2898200B1 (fr) * | 2006-03-06 | 2008-05-30 | Essilor Int | Appareil de traitement de lentilles adapte a lister et a traiter les donnees de commande des lentilles |
JP5044638B2 (ja) * | 2006-03-30 | 2012-10-10 | エヌエイチエヌ コーポレーション | サーバーミラーリング方法及びそのシステム |
US8458725B2 (en) | 2006-04-10 | 2013-06-04 | Oracle International Corporation | Computer implemented method for removing an event registration within an event notification infrastructure |
US9390118B2 (en) * | 2006-04-19 | 2016-07-12 | Oracle International Corporation | Computer implemented method for transforming an event notification within a database notification infrastructure |
US20070258459A1 (en) * | 2006-05-02 | 2007-11-08 | Harris Corporation | Method and system for QOS by proxy |
US20070258445A1 (en) * | 2006-05-02 | 2007-11-08 | Harris Corporation | Systems and methods for protocol filtering for quality of service |
US20080282181A1 (en) * | 2006-05-02 | 2008-11-13 | Siemens Medical Solutions Usa, Inc. | Executable Application Configuration Information Processing System |
US7756134B2 (en) * | 2006-05-02 | 2010-07-13 | Harris Corporation | Systems and methods for close queuing to support quality of service |
US7565341B2 (en) * | 2006-05-10 | 2009-07-21 | Intuit Inc. | Automatically configuring a server to support different types of file accesses |
US8464275B2 (en) * | 2006-05-10 | 2013-06-11 | Oracle International Corporation | Method of using a plurality of subscriber types in managing a message queue of a database management system |
US7894509B2 (en) * | 2006-05-18 | 2011-02-22 | Harris Corporation | Method and system for functional redundancy based quality of service |
WO2007136325A1 (en) * | 2006-05-18 | 2007-11-29 | Astrazeneca Ab | 1- [ (4- [benzoyl (methyl) amino] -3- (phenyl) butyl] azetidine derivatives for the treatment of gastrointestinal disorders 2 |
US8185618B2 (en) * | 2006-06-06 | 2012-05-22 | Cisco Technology, Inc. | Dynamically responding to non-network events at a network device in a computer network |
US20070294237A1 (en) * | 2006-06-13 | 2007-12-20 | Mariam John | Enterprise-Wide Configuration Management Database Searches |
US7990860B2 (en) | 2006-06-16 | 2011-08-02 | Harris Corporation | Method and system for rule-based sequencing for QoS |
US8516153B2 (en) | 2006-06-16 | 2013-08-20 | Harris Corporation | Method and system for network-independent QoS |
US20070291767A1 (en) * | 2006-06-16 | 2007-12-20 | Harris Corporation | Systems and methods for a protocol transformation gateway for quality of service |
US8064464B2 (en) * | 2006-06-16 | 2011-11-22 | Harris Corporation | Method and system for inbound content-based QoS |
US7856012B2 (en) | 2006-06-16 | 2010-12-21 | Harris Corporation | System and methods for generic data transparent rules to support quality of service |
US7916626B2 (en) | 2006-06-19 | 2011-03-29 | Harris Corporation | Method and system for fault-tolerant quality of service |
US20070291765A1 (en) * | 2006-06-20 | 2007-12-20 | Harris Corporation | Systems and methods for dynamic mode-driven link management |
US8730981B2 (en) | 2006-06-20 | 2014-05-20 | Harris Corporation | Method and system for compression based quality of service |
US7769028B2 (en) | 2006-06-21 | 2010-08-03 | Harris Corporation | Systems and methods for adaptive throughput management for event-driven message-based data |
US9726392B2 (en) * | 2006-06-29 | 2017-08-08 | Honeywell International Inc. | Generic user interface system |
US20080013559A1 (en) * | 2006-07-14 | 2008-01-17 | Smith Donald L | Systems and methods for applying back-pressure for sequencing in quality of service |
US8300653B2 (en) * | 2006-07-31 | 2012-10-30 | Harris Corporation | Systems and methods for assured communications with quality of service |
US20080025318A1 (en) * | 2006-07-31 | 2008-01-31 | Harris Corporation | Systems and methods for dynamically customizable quality of service on the edge of a network |
US20100238801A1 (en) * | 2006-07-31 | 2010-09-23 | Smith Donald L | Method and system for stale data detection based quality of service |
JP2010505159A (ja) * | 2006-09-22 | 2010-02-18 | センサーマティック・エレクトロニクス・コーポレーション | イベント管理用のシステムおよび方法 |
US20090037302A1 (en) * | 2006-09-27 | 2009-02-05 | Rockwell Automation Technologies, Inc. | Programmatically scheduled verification |
US20110214050A1 (en) | 2006-09-29 | 2011-09-01 | Stambaugh Thomas M | Virtual systems for spatial organization, navigation, and presentation of information |
EP2082537B1 (de) * | 2006-10-02 | 2013-11-20 | Cerion Optimization Services, Inc. | System und verfahren zur re-home-sequenzierungsoptimierung |
US9697253B2 (en) * | 2006-10-20 | 2017-07-04 | Oracle International Corporation | Consistent client-side cache |
US10296629B2 (en) * | 2006-10-20 | 2019-05-21 | Oracle International Corporation | Server supporting a consistent client-side cache |
US8149133B2 (en) * | 2006-10-20 | 2012-04-03 | Hydril Usa Manufacturing Llc | MUX BOP database mirroring |
JP5092374B2 (ja) * | 2006-12-01 | 2012-12-05 | 富士通株式会社 | データセンタ及びデータ転送方法 |
US20080163197A1 (en) * | 2006-12-30 | 2008-07-03 | Sap Ag | Multi-product installation tool database architecture |
US8365165B2 (en) * | 2006-12-30 | 2013-01-29 | Sap Ag | Dynamic addition of products and removal of software products on a distribution server |
US8515573B2 (en) * | 2007-02-08 | 2013-08-20 | Glory Ltd. | Sort pattern creating device, sort pattern creating method, and sort pattern creating system |
WO2008103487A1 (en) * | 2007-02-25 | 2008-08-28 | Schlumberger Canada Limited | Drilling collaboration infrastructure |
US7769789B2 (en) * | 2007-05-11 | 2010-08-03 | Oracle International Corporation | High performant row-level data manipulation using a data layer interface |
US8032548B2 (en) * | 2007-07-31 | 2011-10-04 | Oracle International Corporation | Efficient network data transfer |
EP2193338B1 (de) * | 2007-09-13 | 2015-12-02 | Continental Teves AG & Co. oHG | Sicherheitskritische kartenaktualisierung über einen datenkanal eines satellitennavigationssystems |
US7987470B1 (en) | 2007-09-28 | 2011-07-26 | Emc Corporation | Converting heavyweight objects to lightwight objects |
US7987210B1 (en) * | 2007-09-28 | 2011-07-26 | Emc Corporation | System for lightweight objects |
US8656410B1 (en) | 2007-09-28 | 2014-02-18 | Emc Corporation | Conversion of lightweight object to a heavyweight object |
US9348912B2 (en) * | 2007-10-18 | 2016-05-24 | Microsoft Technology Licensing, Llc | Document length as a static relevance feature for ranking search results |
US9756004B2 (en) * | 2007-11-08 | 2017-09-05 | Skype | Message delivery system and method |
US8260821B2 (en) * | 2008-02-05 | 2012-09-04 | International Business Machines Corporation | Global, dynamic, remote and central system for database driver configuration |
US9032295B1 (en) | 2008-03-19 | 2015-05-12 | Dropbox, Inc. | Method for displaying files from a plurality of devices in a multi-view interface and for enabling operations to be performed on such files through such interface |
US8019900B1 (en) | 2008-03-25 | 2011-09-13 | SugarSync, Inc. | Opportunistic peer-to-peer synchronization in a synchronization system |
JP4590464B2 (ja) * | 2008-03-25 | 2010-12-01 | キヤノン株式会社 | 放送受信装置及びその制御方法 |
US9141483B1 (en) | 2008-03-27 | 2015-09-22 | Dropbox, Inc. | System and method for multi-tier synchronization |
US8812493B2 (en) * | 2008-04-11 | 2014-08-19 | Microsoft Corporation | Search results ranking using editing distance and document information |
US20090319559A1 (en) * | 2008-06-19 | 2009-12-24 | Kurt Westerfeld | Method And System of Using Social Networks and Communities to Ensure Data Quality of Configuration Items in a Configuration Management Database |
US20090319537A1 (en) * | 2008-06-19 | 2009-12-24 | Kurt Westerfeld | Method And System of Using Structured Social Networks and Communities to Create And Maintain Relationships Between Configuration Items in a Configuration Management Database |
US20090319316A1 (en) * | 2008-06-19 | 2009-12-24 | Kurt Westerfeld | Method and System of Using Structured Social Networks and Communities to Create and Maintain Business Service Models |
RU2495476C2 (ru) | 2008-06-20 | 2013-10-10 | Инвенсис Системз, Инк. | Системы и способы для иммерсивного взаимодействия с действительными и/или имитируемыми техническими средствами для управления технологическим процессом, контроля состояния окружающей среды и производственного контроля |
US20090327292A1 (en) * | 2008-06-27 | 2009-12-31 | Motorola, Inc. | Ensuring consistency among shared copies of a data element |
US8407205B2 (en) * | 2008-09-11 | 2013-03-26 | Salesforce.Com, Inc. | Automating sharing data between users of a multi-tenant database service |
US8301994B1 (en) * | 2008-09-12 | 2012-10-30 | Adobe Systems Incorporated | Synchronizing multiple hierarchal data structures |
US20100082701A1 (en) * | 2008-09-24 | 2010-04-01 | Computer Associates Think, Inc. | System and Method for Using a Configuration Management Database |
US8095520B2 (en) * | 2008-11-03 | 2012-01-10 | Oracle International Corporation | Event recording with local event record locking |
US8881039B2 (en) | 2009-03-13 | 2014-11-04 | Fisher-Rosemount Systems, Inc. | Scaling composite shapes for a graphical human-machine interface |
US8214389B2 (en) * | 2009-04-03 | 2012-07-03 | International Business Machines Corporation | Common architecture for administration of client side property settings in a distributed and heterogeneous environment |
US8463884B2 (en) * | 2009-04-08 | 2013-06-11 | Microsoft Corporation | Synchronization of mobile device with application server |
US8650498B1 (en) | 2009-05-04 | 2014-02-11 | SugarSync, Inc. | User interface for managing and viewing synchronization settings in a synchronization system |
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 |
US8463964B2 (en) | 2009-05-29 | 2013-06-11 | Invensys Systems, Inc. | Methods and apparatus for control configuration with enhanced change-tracking |
US8655830B2 (en) * | 2009-10-06 | 2014-02-18 | Johnson Controls Technology Company | Systems and methods for reporting a cause of an event or equipment state using causal relationship models in a building management system |
US9475359B2 (en) * | 2009-10-06 | 2016-10-25 | Johnson Controls Technology Company | Systems and methods for displaying a hierarchical set of building management system information |
US20110087650A1 (en) * | 2009-10-06 | 2011-04-14 | Johnson Controls Technology Company | Creation and use of causal relationship models in building management systems and applications |
US8516202B2 (en) * | 2009-11-16 | 2013-08-20 | International Business Machines Corporation | Hybrid transactional memory system (HybridTM) and method |
US8204908B2 (en) * | 2009-11-24 | 2012-06-19 | Sap Ag | Team support in change recording and versioning systems |
US20110172887A1 (en) * | 2009-11-30 | 2011-07-14 | Reeve David R | Vehicle assembly control method for collaborative behavior |
US9020522B2 (en) * | 2010-02-12 | 2015-04-28 | Broadcom Corporation | Method and system for optimizing uploading of location data for location based services |
US8825183B2 (en) * | 2010-03-22 | 2014-09-02 | Fisher-Rosemount Systems, Inc. | Methods for a data driven interface based on relationships between process control tags |
US8352641B2 (en) * | 2010-04-21 | 2013-01-08 | General Electric Company | Systems and methods for identifying fieldbus devices in a control system |
US8473515B2 (en) * | 2010-05-10 | 2013-06-25 | International Business Machines Corporation | Multi-tenancy in database namespace |
US8738635B2 (en) | 2010-06-01 | 2014-05-27 | Microsoft Corporation | Detection of junk in search result ranking |
US8832236B2 (en) * | 2010-06-21 | 2014-09-09 | Fisher-Rosemount Systems, Inc. | Methods, apparatus and articles of manufacture to replace field devices in process control systems |
US8682921B2 (en) | 2010-07-07 | 2014-03-25 | Johnson Controls Technology Company | Query engine for building management systems |
US8516016B2 (en) | 2010-07-07 | 2013-08-20 | Johnson Controls Technology Company | Systems and methods for facilitating communication between a plurality of building automation subsystems |
US20120016999A1 (en) * | 2010-07-14 | 2012-01-19 | Sap Ag | Context for Sharing Data Objects |
US9240965B2 (en) | 2010-08-31 | 2016-01-19 | Sap Se | Methods and systems for business interaction monitoring for networked business process |
US10169484B2 (en) * | 2010-09-23 | 2019-01-01 | Fisher-Rosemount Systems, Inc. | Methods and apparatus to manage process control search results |
US8538588B2 (en) | 2011-02-28 | 2013-09-17 | Honeywell International Inc. | Method and apparatus for configuring scheduling on a wall module |
US9230358B2 (en) | 2011-03-31 | 2016-01-05 | International Business Machines Corporation | Visual connectivity of widgets using event propagation |
US9049176B2 (en) * | 2011-06-22 | 2015-06-02 | Dropbox, Inc. | File sharing via link generation |
EP2547140A1 (de) * | 2011-07-11 | 2013-01-16 | Koninklijke Philips Electronics N.V. | Verfahren zum Konfigurieren eines Knotens |
US9009410B2 (en) * | 2011-08-23 | 2015-04-14 | Ceva D.S.P. Ltd. | System and method for locking data in a cache memory |
US20130131840A1 (en) * | 2011-11-11 | 2013-05-23 | Rockwell Automation Technologies, Inc. | Scalable automation system |
US9495462B2 (en) | 2012-01-27 | 2016-11-15 | Microsoft Technology Licensing, Llc | Re-ranking search results |
US9411844B2 (en) * | 2012-03-29 | 2016-08-09 | Tracelink, Inc. | Methods and systems for managing distributed concurrent data updates of business objects |
US9633125B1 (en) | 2012-08-10 | 2017-04-25 | Dropbox, Inc. | System, method, and computer program for enabling a user to synchronize, manage, and share folders across a plurality of client devices and a synchronization server |
US10057318B1 (en) | 2012-08-10 | 2018-08-21 | Dropbox, Inc. | System, method, and computer program for enabling a user to access and edit via a virtual drive objects synchronized to a plurality of synchronization clients |
DK2811173T4 (da) * | 2013-06-04 | 2022-01-10 | Danfoss Power Solutions Aps | Hydraulisk system og fremgangsmåde til drift af hydraulisk system |
US9258668B2 (en) * | 2013-07-31 | 2016-02-09 | Sap Se | Mobile application framework extensibiilty |
US10359951B1 (en) * | 2013-08-23 | 2019-07-23 | Acronis International Gmbh | Snapshotless backup |
KR101970813B1 (ko) * | 2014-02-24 | 2019-04-19 | 주식회사 엘지화학 | 홀을 포함하고 있는 전지셀 |
WO2015134130A1 (en) * | 2014-03-03 | 2015-09-11 | Life Technologies Corporation | A graphical user interface system and method for transferring data acquisition and analysis settings |
US9933946B2 (en) * | 2014-09-15 | 2018-04-03 | Hewlett Packard Enterprise Development Lp | Fibre channel storage array methods for port management |
JP6248901B2 (ja) * | 2014-11-13 | 2017-12-20 | 横河電機株式会社 | 入出力装置 |
US10936494B1 (en) | 2014-12-05 | 2021-03-02 | EMC IP Holding Company LLC | Site cache manager for a distributed file system |
US10430385B1 (en) | 2014-12-05 | 2019-10-01 | EMC IP Holding Company LLC | Limited deduplication scope for distributed file systems |
US10951705B1 (en) | 2014-12-05 | 2021-03-16 | EMC IP Holding Company LLC | Write leases for distributed file systems |
US9920944B2 (en) | 2015-03-19 | 2018-03-20 | Honeywell International Inc. | Wall module display modification and sharing |
WO2016183544A1 (en) | 2015-05-14 | 2016-11-17 | Walleye Software, LLC | System performance logging |
CN105260163A (zh) * | 2015-09-18 | 2016-01-20 | 浪潮软件股份有限公司 | 一种烟草云平台下高并发逻辑控制的方法 |
US10261782B2 (en) * | 2015-12-18 | 2019-04-16 | Amazon Technologies, Inc. | Software container registry service |
US10878140B2 (en) | 2016-07-27 | 2020-12-29 | Emerson Process Management Power & Water Solutions, Inc. | Plant builder system with integrated simulation and control system configuration |
CN106249628B (zh) * | 2016-08-30 | 2019-07-26 | 深圳市欧瑞博电子有限公司 | 一种智能设备安装位置自动识别系统和方法 |
WO2018149504A1 (en) | 2017-02-17 | 2018-08-23 | Nokia Technologies Oy | Changing smart contracts recorded in block chains |
US10967303B2 (en) | 2018-03-08 | 2021-04-06 | Mark W. Romers | Filter backwash control system for a water or wastewater treatment system to conserve water during the filter backwash process |
US10592414B2 (en) * | 2017-07-14 | 2020-03-17 | International Business Machines Corporation | Filtering of redundantly scheduled write passes |
US10241965B1 (en) | 2017-08-24 | 2019-03-26 | Deephaven Data Labs Llc | Computer data distribution architecture connecting an update propagation graph through multiple remote query processors |
US11567934B2 (en) | 2018-04-20 | 2023-01-31 | Oracle International Corporation | Consistent client-side caching for fine grained invalidations |
US11334596B2 (en) | 2018-04-27 | 2022-05-17 | Dropbox, Inc. | Selectively identifying and recommending digital content items for synchronization |
US11175802B2 (en) * | 2018-09-21 | 2021-11-16 | Sap Se | Configuration object deletion manager |
JP6962345B2 (ja) * | 2019-03-22 | 2021-11-05 | オムロン株式会社 | 情報処理装置、情報処理方法、および情報処理プログラム |
CN110430110B (zh) * | 2019-08-12 | 2021-12-07 | 北京和利时系统工程有限公司 | 一种现场总线网关及其协议转换方法 |
US11137913B2 (en) | 2019-10-04 | 2021-10-05 | Hewlett Packard Enterprise Development Lp | Generation of a packaged version of an IO request |
US11092939B2 (en) | 2019-10-07 | 2021-08-17 | Fisher-Rosemount Systems, Inc. | Preview mode for configuration logic |
US11038750B2 (en) * | 2019-10-23 | 2021-06-15 | Toshiba Global Commerce Solutions Holdings Corporation | Management of configuration modifications in distributed data systems |
US10939235B1 (en) * | 2020-02-28 | 2021-03-02 | Intuit, Inc. | Dynamic geofence radius |
US11314216B2 (en) * | 2020-04-30 | 2022-04-26 | Fisher-Rosemount Systems, Inc. | Remote deployment and commissioning of workstations within a distributed control system |
US11424865B2 (en) | 2020-12-10 | 2022-08-23 | Fisher-Rosemount Systems, Inc. | Variable-level integrity checks for communications in process control environments |
US11418969B2 (en) | 2021-01-15 | 2022-08-16 | Fisher-Rosemount Systems, Inc. | Suggestive device connectivity planning |
Family Cites Families (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4007450A (en) | 1975-06-30 | 1977-02-08 | International Business Machines Corporation | Data sharing computer network |
US4888726A (en) | 1987-04-22 | 1989-12-19 | Allen-Bradley Company. Inc. | Distributed processing in a cluster of industrial controls linked by a communications network |
US6345288B1 (en) | 1989-08-31 | 2002-02-05 | Onename Corporation | Computer-based communication system and method using metadata defining a control-structure |
ATE121208T1 (de) | 1990-01-30 | 1995-04-15 | Johnson Service Co | Vernetztes betriebsmittelverwaltungssystem. |
US5261069A (en) | 1990-08-13 | 1993-11-09 | Hewlett-Packard Company | Method of maintaining consistency of cached data in a database system |
US5523946A (en) * | 1992-02-11 | 1996-06-04 | Xerox Corporation | Compact encoding of multi-lingual translation dictionaries |
US5412806A (en) * | 1992-08-20 | 1995-05-02 | Hewlett-Packard Company | Calibration of logical cost formulae for queries in a heterogeneous DBMS using synthetic database |
US5596744A (en) * | 1993-05-20 | 1997-01-21 | Hughes Aircraft Company | Apparatus and method for providing users with transparent integrated access to heterogeneous database management systems |
US5635940A (en) * | 1994-02-02 | 1997-06-03 | Hickman; Paul L. | Communication configurator and method for implementing same |
US5560005A (en) * | 1994-02-25 | 1996-09-24 | Actamed Corp. | Methods and systems for object-based relational distributed databases |
EP0674253B1 (de) | 1994-03-15 | 2003-02-19 | Kabushiki Kaisha Toshiba | Gemeinsame Benutzung eines Dateiedierungssystems mit geheimem Dateiinhalt, Versionsverwaltung und asynchroner Edierung |
GB2301717B (en) * | 1995-06-02 | 1999-08-11 | Dsc Communications | Network controller for monitoring the status of a network |
US5826253A (en) | 1995-07-26 | 1998-10-20 | Borland International, Inc. | Database system with methodology for notifying clients of any additions, deletions, or modifications occurring at the database server which affect validity of a range of data records cached in local memory buffers of clients |
ES2136467T3 (es) | 1996-01-17 | 1999-11-16 | Siemens Ag | Aparato de automatizacion. |
JP2877064B2 (ja) * | 1996-01-26 | 1999-03-31 | 日本電気株式会社 | 監視制御システムのデータベース整合方式 |
US5862325A (en) | 1996-02-29 | 1999-01-19 | Intermind Corporation | Computer-based communication system and method using metadata defining a control structure |
US5940294A (en) * | 1996-04-12 | 1999-08-17 | Fisher-Rosemont Systems, Inc. | System for assisting configuring a process control environment |
US5838563A (en) | 1996-04-12 | 1998-11-17 | Fisher-Rosemont Systems, Inc. | System for configuring a process control environment |
US5828851A (en) | 1996-04-12 | 1998-10-27 | Fisher-Rosemount Systems, Inc. | Process control system using standard protocol control of standard devices and nonstandard devices |
US6098116A (en) * | 1996-04-12 | 2000-08-01 | Fisher-Rosemont Systems, Inc. | Process control system including a method and apparatus for automatically sensing the connection of devices to a network |
US5758071A (en) * | 1996-07-12 | 1998-05-26 | Electronic Data Systems Corporation | Method and system for tracking the configuration of a computer coupled to a computer network |
US5878429A (en) * | 1996-07-18 | 1999-03-02 | Ipivot, Inc. | System and method of governing delivery of files from object databases |
JPH10320257A (ja) * | 1997-05-15 | 1998-12-04 | Casio Comput Co Ltd | データ処理システム及びデータ処理プログラムを記録した記録媒体 |
US6256712B1 (en) | 1997-08-01 | 2001-07-03 | International Business Machines Corporation | Scaleable method for maintaining and making consistent updates to caches |
US6101508A (en) * | 1997-08-01 | 2000-08-08 | Hewlett-Packard Company | Clustered file management for network resources |
US6026413A (en) | 1997-08-01 | 2000-02-15 | International Business Machines Corporation | Determining how changes to underlying data affect cached objects |
US6067545A (en) * | 1997-08-01 | 2000-05-23 | Hewlett-Packard Company | Resource rebalancing in networked computer systems |
US6393526B1 (en) | 1997-10-28 | 2002-05-21 | Cache Plan, Inc. | Shared cache parsing and pre-fetch |
US6516351B2 (en) | 1997-12-05 | 2003-02-04 | Network Appliance, Inc. | Enforcing uniform file-locking for diverse file-locking protocols |
US6687698B1 (en) | 1999-10-18 | 2004-02-03 | Fisher Rosemount Systems, Inc. | Accessing and updating a configuration database from distributed physical locations within a process control system |
US6704737B1 (en) | 1999-10-18 | 2004-03-09 | Fisher-Rosemount Systems, Inc. | Accessing and updating a configuration database from distributed physical locations within a process control system |
US6343290B1 (en) * | 1999-12-22 | 2002-01-29 | Celeritas Technologies, L.L.C. | Geographic network management system |
AU2001229371A1 (en) * | 2000-01-14 | 2001-07-24 | Saba Software, Inc. | Information server |
US6792436B1 (en) * | 2000-02-11 | 2004-09-14 | Persistence Software, Inc. | Method for synchronizing multiple software caches in a memory |
-
2000
- 2000-04-28 US US09/560,199 patent/US6687698B1/en not_active Expired - Lifetime
- 2000-10-06 DE DE10049569A patent/DE10049569B4/de not_active Expired - Lifetime
- 2000-10-17 GB GB0025371A patent/GB2363872B/en not_active Expired - Lifetime
- 2000-10-18 JP JP2000317826A patent/JP4731669B2/ja not_active Expired - Fee Related
-
2002
- 2002-08-16 US US10/222,555 patent/US7127460B2/en not_active Expired - Lifetime
-
2004
- 2004-06-25 HK HK04104558A patent/HK1061901A1/xx not_active IP Right Cessation
-
2011
- 2011-03-07 JP JP2011049324A patent/JP4768085B2/ja not_active Expired - Fee Related
- 2011-04-06 JP JP2011084780A patent/JP4903290B2/ja not_active Expired - Lifetime
- 2011-04-06 JP JP2011084781A patent/JP4903291B2/ja not_active Expired - Lifetime
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003025688A1 (de) * | 2001-09-10 | 2003-03-27 | Siemens Aktiengesellschaft | Verfahren zur verschaltung von automatisierungsfunktionen in einer anlage und verfahren zur abfrage und änderung von verschaltungsinformationen |
WO2003073191A2 (de) * | 2002-02-26 | 2003-09-04 | Endress + Hauser Process Solutions Ag | Verfahren zum übertragen von feldgerätedaten an eine externe datenbank |
WO2003073191A3 (de) * | 2002-02-26 | 2004-07-08 | Endress & Hauser Process Solut | Verfahren zum übertragen von feldgerätedaten an eine externe datenbank |
DE102004007231A1 (de) * | 2004-02-13 | 2005-09-08 | Siemens Ag | Verfahren zum Konfigurieren einer Automatisierungskomponente eines Automatisierungssystems und entsprechendes Automatisierungssystem |
DE102004007231B4 (de) * | 2004-02-13 | 2011-07-28 | Siemens AG, 80333 | Verfahren zum Konfigurieren einer Automatisierungskomponente eines Automatisierungssystems und entsprechendes Automatisierungssystem |
WO2010060977A1 (de) * | 2008-11-27 | 2010-06-03 | Siemens Aktiengesellschaft | Verfahren zum erstellen einer leittechnischen einrichtung für eine industrieanlage |
CN110457395A (zh) * | 2019-08-15 | 2019-11-15 | 中国银行股份有限公司 | 假日数据的同步方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
DE10049569B4 (de) | 2012-03-01 |
JP2011134358A (ja) | 2011-07-07 |
JP2011108287A (ja) | 2011-06-02 |
GB0025371D0 (en) | 2000-11-29 |
JP2001184327A (ja) | 2001-07-06 |
GB2363872A (en) | 2002-01-09 |
HK1061901A1 (en) | 2004-10-08 |
JP4903290B2 (ja) | 2012-03-28 |
US6687698B1 (en) | 2004-02-03 |
GB2363872B (en) | 2004-08-25 |
JP4731669B2 (ja) | 2011-07-27 |
US20030004952A1 (en) | 2003-01-02 |
JP4903291B2 (ja) | 2012-03-28 |
JP2011159315A (ja) | 2011-08-18 |
JP4768085B2 (ja) | 2011-09-07 |
US7127460B2 (en) | 2006-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE10049569B4 (de) | Zugriff und Aktualisierung einer Konfigurationsdatenbank von verteilten physischen Orten innerhalb eines Prozeßsteuerungssystems | |
DE10049503B4 (de) | Zugriff und Aktualisierung einer Konfigiurationsdatenbank von verteilten Physischen Orten innerhalb eines Prozessteuersystems | |
DE102004010180A1 (de) | Verfahren und Vorrichtungen zum Zugriff auf verteilte Daten für Prozesssteuersysteme | |
EP1151399B1 (de) | Integration heterogener Datenbank-Systeme | |
DE60008555T2 (de) | Verfahren und vorrichtung zur effizienten übertragung von daten einer interaktiven anwendung zwischen klienten und server mit hilfe einer markup-sprache | |
JP4077496B2 (ja) | 通信システム及びこれを構成するワークステーションのための管理装置 | |
DE60220676T2 (de) | Konsistente lesevorgänge in einer verteilten datenbankumgebung | |
DE60030369T2 (de) | Rechner integrierte Fertigungstechniken | |
DE10049504A1 (de) | Verfahren und System zur tranparenten Unterstützung von entfernten Eingabe-/Ausgabeeinrichtungen in einem Prozeßsteuersystem | |
EP1708096A1 (de) | Rechnernetzwerksystem zum Synchronisieren einer zweiten Datenbank mit einer ersten Datenbank sowie Vorgehensweisen hierfür | |
EP1708095A1 (de) | Rechnernetzwerksystem zum Aufbauen, Synchronisieren und/oder Betreiben einer zweiten Datenbank aus/mit einer ersten Datenbank sowie Vorgehensweisen hierfür | |
DE10031670A1 (de) | Automatisch heruntergeladener verbindungsaktiver Plan | |
DE69825624T2 (de) | Verfahren zum weiterleiten und datenerfassung einer digitaler nachricht aus einer telekommunikationseinrichtung | |
EP1708094A1 (de) | Rechnernetzwerksystem zum Aufbauen, Synchronisieren und/oder Betreiben einer zweiten Datenbank aus/mit einer ersten Datenbank sowie Vorgehensweisen hierfür | |
EP1653308A1 (de) | System und Verfahren zur Speicherung und Bereitstellung von Informationen | |
EP1655974A1 (de) | Verfahren und Vorrichtungen zum Informationsabgleich zwischen Manager und Agent in eiem Managementnetz | |
DE10057010A1 (de) | Netzkommunikationssystem, das mit SQL auf eine relationale Datenbank zugreifen kann | |
DE19813883A1 (de) | Managementsystem für die gezielte Bereitstellung von Internet-Informationen für geschlossene Benutzergruppen | |
GB2394816A (en) | Database server to provide concurrent access for multiple clients to the database uses a shared cache for holding copy of the data being accessed | |
DE69433334T2 (de) | Kommunikationsdatenprozessor | |
WO2002019044A2 (de) | Vorrichtung und verfahren zur integrierten überwachung, steuerung und regelung von komplexen technischen verfahrensabläufen | |
GB2394334A (en) | Configuration database for a process control system distributed between separate locations connected by a slow network | |
DE102006005840B4 (de) | Verfahren zum gemeinsamen Bearbeiten einer Datenmenge sowie ein Netzwerksystem und ein Kommunikationssystem zur Durchführung des Verfahrens | |
EP1251426A1 (de) | Applikationsintegrator für Informationsverarbeitungssysteme | |
DE102008048402A1 (de) | Verfahren und Anordnung zum Management verteilter Systeme sowie ein entsprechendes Computerprogramm und ein entsprechendes computerlesbares Speichermedium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
R018 | Grant decision by examination section/examining division | ||
R020 | Patent grant now final |
Effective date: 20120602 |
|
R071 | Expiry of right |