Claims
- 1. A configuration database system for use in storing configuration data pertaining to a process control system having a plurality of geographically distributed physical locations, the configuration database system comprising:
a configuration database located at each of the plurality of physical locations, wherein each of the configuration databases is adapted to originally store a different portion of the configuration data; a communication network that communicatively couples the plurality of geographically distributed physical locations together; and a configuration application adapted to communicate with each of the databases via the communication network and to use data from two or more of the configuration databases to perform a configuration activity.
- 2. The configuration database system of claim 1, wherein the configuration application is adapted to subscribe to a subset of the configuration data within a first one of the configuration databases and the first one of the configuration databases includes a database server having a first routine that automatically recognizes a change to the subset of the configuration data stored in the first configuration database to which the configuration application subscribes and a second routine that automatically notifies the configuration application of the change to the subset of the configuration data.
- 3. The configuration database system of claim 2, wherein the second routine automatically communicates the change made to the subset of the configuration data stored in the first configuration database to the configuration application when the first routine detects the change to the subset of the configuration data.
- 4. The configuration database system of claim 2, wherein the configuration application includes a locking portion that sends a lock command to lock an item of configuration data within the first configuration database and wherein the database server further includes a locking routine that locks the item of configuration data within the first configuration database to prevent the item of configuration data from being changed by any configuration application other than the configuration application that sent the locking command.
- 5. The configuration database system of claim 2, further including a second configuration application and wherein the database server includes a second routine that provides concurrent access to a particular item of configuration data within the first configuration database to the first and second configuration applications and wherein the database server further includes a locking routine that locks the particular item of configuration data within the first configuration database when the first configuration application writes to the particular item of configuration data to thereby prevent the second configuration application from the changing the particular item of configuration data when the first configuration application is writing to the particular item of configuration data.
- 6. The configuration database system of claim 1, wherein the configuration databases are established in a hierarchy having at least two configuration databases in a lower level and at least one configuration database in an upper level, and wherein the each of the configuration databases in the lower level are communicatively coupled to the configuration database within the upper level.
- 7. The configuration database system of claim 6, wherein the lower level includes zones pertaining to different ones of the physical locations and wherein configuration data that pertains to a first zone is stored in the configuration database at the first zone and the configuration data that pertains to first and second zones is stored in the configuration database at the upper level in the hierarchy communicatively coupled to the first and second zones.
- 8. The configuration database system of claim 6, further including software that detects the use of the same name in the one of the configuration databases within the lower level and the configuration database in the upper level.
- 9. The configuration database system of claim 1, wherein the configuration application includes a browser adapted to browse a first one of the configuration databases and to browse a second one of the configuration databases.
- 10. The configuration database system of claim 1, wherein one of the configuration databases stores a local copy of an item stored originally within a different one of the configuration databases.
- 11. The configuration database system of claim 1, wherein the communication network includes a slow communication link between two of the configuration databases.
- 12. A distributed configuration database system adapted to be used in a process control system having multiple physical locations:
a first configuration database located at a first one of the physical locations that stores a first portion of configuration data for the process control system; a second configuration database located at a second one of the physical locations that stores a second portion of the configuration data for the process control system, wherein the first portion of the configuration data is different than the second portion of the configuration data; and a communication network that interconnects the first physical location and the second physical location using a slow communication link; wherein the first and the second configuration databases are adapted to communicate with users at the first and the second physical locations.
- 13. The distributed configuration database system of claim 12, wherein the second configuration database is adapted to subscribe to configuration data within the first configuration database and wherein the first configuration database includes a database server having a first routine that automatically detects a change to the configuration data stored in the first configuration database to which the second configuration database subscribes and a second routine that automatically notifies the second configuration database of the change to the configuration data stored in the first configuration database to which the second configuration database subscribes.
- 14. The distributed configuration database system of claim 13, wherein the second routine automatically communicates the change made to the configuration data stored in the first configuration database to the second configuration database when the first routine detects the change to the configuration data stored in the first configuration database to which the second configuration database subscribes.
- 15. The distributed configuration database system of claim 12, further including first and second configuration applications and a database server associated with the first configuration database, wherein the database server includes a shared cache that provides concurrent access to any particular item of configuration data within the first configuration database to the first and second configuration applications and includes a locking routine that locks the particular item of configuration data within the first configuration database when the first configuration application writes to the particular item of configuration data to thereby prevent the second configuration application from changing the particular item of configuration data when the first configuration application is writing to the particular item of configuration data.
- 16. The distributed configuration database system of claim 12, further including a third configuration database located at a third physical location and wherein the first, second and third configuration databases are established in a hierarchy in which the first and the second configuration databases are in a lower level and the third configuration database is in an upper level, and wherein the each of first and second configuration databases in the lower level are communicatively coupled to the third configuration database within the upper level via the communication network.
- 17. The distributed configuration database system of claim 16, wherein the lower level includes first and second zones and wherein configuration data that pertains to a first zone is stored in the first configuration database, configuration data that pertains to the second zone is stored in the second configuration database and configuration data that pertains to both the first and second zones is stored in the third configuration database.
- 18. The distributed configuration database system of claim 16, further including a routine that detects the use of the same name within the first and the third configuration databases or within the second and third configuration databases.
- 19. A method of storing and using configuration data related to a process control system when the process control system has two or more physical locations which are geographically separated, the method comprising the steps of:
storing a different portion of the configuration data within each of a plurality of configuration databases, wherein two of the configuration databases are located at different physical locations; providing a communication link between each of the configuration databases, and accessing different configuration data from two or more of the configuration databases at the same time to perform a configuration activity.
- 20. The method of storing and using configuration data of claim 19, wherein the step of accessing different configuration data includes the step of using an application to subscribe to the accessed configuration data from the two or more of the configuration databases and automatically sending any changes made to the accessed configuration data from the two or more configuration databases to the application.
- 21. The method of storing and using configuration data of claim 19, further including the step of establishing a hierarchy among the configuration databases, wherein the hierarchy includes two configuration databases within a lower level and one configuration database within an upper level, and establishing communications between each of the two configuration databases within the lower level and the one configuration database within the upper level.
- 22. The method of storing and using configuration data of claim 21, further including the step of using unique names for configuration data within the one configuration database within the upper level of the hierarchy and either of the configuration databases within the lower level of the hierarchy, wherein the same name can be used in the two configuration databases at the lower level of the hierarchy.
- 23. A database server adapted to provide multiple clients concurrent access to a database component stored in a database, the database server comprising:
a shared cache including a memory store communicatively coupled to the database, wherein the memory store holds a copy of the database component; a memory store gate associated with the memory store, wherein the memory store gate controls access to the memory store; and a client thread for each of the multiple of clients, wherein each of the client threads includes a server component that communicates with the memory store gate to gain access to the memory store and that communicates with one of the multiple clients with respect to the database component stored in the memory store; wherein the memory store gate communicates with a single server component when only one of the multiple clients is accessing the database component and the memory store gate communicates with two or more server components when two or more clients are accessing the database component.
- 24. The database server of claim 23, further including a notify thread having a notify engine that detects a change made to the database component within the database and that notifies the memory store gate of the detected change.
- 25. The database server of claim 24, wherein the memory store gate notifies the server components that communicate with the memory store gate of the detected change and wherein the notified server components notify the clients with which the notified server components communicate of the detected change.
- 26. The database server of claim 24, wherein the notify thread further includes a map which maps the database component stored in the database to the memory store gate and wherein the notify engine uses the map to notify the memory store gate of the detected change.
- 27. The database server of claim 26, wherein the memory store gate includes a unique identifier and registers the unique identifier with the map and wherein the memory store uses a transactional object to read the database component from or to write the database component to the database and wherein the transactional object registers a database component location for the database component with the map to be associated with the unique identifier.
- 28. The database server of claim 24, further including a runtime thread including a runtime notify engine that detects changes made with respect to the database component made by applications executed outside of the database and that notifies the memory store gate of the detected change to the database component.
- 29. The database server of claim 23, wherein the server component of each of the client threads is capable of reading from and writing to the memory store.
- 30. The database server of claim 23, wherein one of the server components communicates with one of the multiple clients via a slow communication link.
- 31. The database server of claim 23, wherein the slow communication link is a satellite communication link.
- 32. The database server of claim 23, further including a lock manager which causes the memory store gate to prevent writes to the memory store.
- 33. The database server of claim 32, wherein the lock manager causes the memory store gate to prevent writes to the memory store by each of the clients except one of the clients when the one of the clients is writing to the memory store.
- 34. The database server of claim 23, wherein the database is a configuration database and the database component is a configuration component related to the configuration of a process control network.
- 35. A database server adapted to provide multiple clients concurrent access to a plurality of database components stored in a database, the database server comprising:
a shared cache including a plurality of memory stores communicatively coupled to the database, wherein each of the memory stores holds a copy of a different one of the database components; a memory store gate associated with each of the memory stores, wherein each of the memory store gates controls access to the associated memory store; and a client thread for each of the multiple of clients, wherein each of the client threads includes a server component that communicates with one of the memory store gates to gain access to the memory store associated with the one of the memory store gates and that communicates with one of the multiple clients with respect to the database component stored in the memory store associated with the one of the memory store gates; wherein each of the memory store gates communicates with a single server component when only one of the multiple clients is accessing the database component stored in the memory store associated with the memory store gate and wherein each of the memory store gates communicates with two or more server components when two or more of the multiple clients are accessing the database component stored in the memory store associated with the memory store gate.
- 36. The database server of claim 35, further including a notify thread having a notify engine that detects a change made to one of the database components and that notifies one of the memory store gates of the detected change.
- 37. The database server of claim 36, wherein the one of the memory store gates notifies the server components that communicate with the one of the memory store gates of the detected change and wherein the notified server components notify the clients with which the notified server components communicate of the detected change.
- 38. The database server of claim 37, wherein the notified server components provide the detected change to the clients with which the notified server component communicate.
- 39. The database server of claim 35, further including a lock manager which causes each of the memory store gates to prevent writes to the associated memory store.
- 40. The database server of claim 39, wherein the two of the memory store gates have a parent/child relationship so that one of the two memory store gates is a parent memory store gate and the other of the two memory store gates is a child memory store gate and wherein the lock manager causes a lock of the child memory store gate when the lock manager causes a lock of the parent memory store gate.
- 41. A database server adapted to be used in a process control system to provide multiple clients concurrent access to a database component stored in a database, the database server comprising:
a shared cache; a first element that establishes, within the shared cache, a memory store for the database component when the database component is being accessed by one or more of the multiple clients; and a client thread routine that establishes a client thread for each of the multiple clients, wherein each of the client threads includes a server component that communicates with one of the clients and that communicates with the memory store to thereby provide access to the database component stored in the memory store by the one of the clients; wherein the memory store is adapted to communicate with a single server component when only one of the multiple clients is accessing the database component and wherein the memory store is adapted to communicate with two or more server components when two or more of the multiple clients are accessing the database component.
- 42. The database server of claim 41, wherein the first element further establishes a memory store gate associated with the memory store and wherein the memory store gate is adapted to communicate with the server components in two or more of the client threads to provide access to the associated memory store by each of the server components in the two or more client threads when two or more clients are accessing the database component.
- 43. The database server of claim 42, wherein the memory store uses a transactional object to access the database component within the database.
- 44. The database server of claim 42, further including a notify thread having a notify engine and a map, wherein the notify engine detects a change to the database component within the database and uses the map to notify the memory store gate of the detected change.
- 45. The database server of claim 44, wherein the memory store gate notifies all of the server components to which the memory store gate communicates of the detected change to the database component and wherein the notified server components notify the clients with which the notified server components communicate of the detected change.
- 46. The database server of claim 44, wherein the memory store gate causes the memory store to read the database component from the database when the notify engine notifies the memory store gate of the detected change to the database component within the database.
- 47. The database server of claim 44, wherein the notify thread uses a change list generated by the database to detect the change to the database component within the database.
- 48. The database server of claim 44, further including a runtime services notify thread that detects a change to the database component based on the operation of runtime applications executed within the process control system and that notifies the memory store gate of the detected change.
- 49. The database server of claim 41, wherein at least one of the server components is adapted to communicate with one of the multiple clients via a satellite communication link.
- 50. The database server of claim 41, wherein at least one of the server components is adapted to communicate with one of the multiple clients via a cellular communication link.
- 51. The database server of claim 41, wherein at least one of the server components is adapted to communicate with one of the multiple clients via a wireless communication link.
- 52. The database server of claim 41, wherein at least one of the server components is adapted to communicate with one of the multiple clients via a telephone communication link.
- 53. The database server of claim 41, further including a locking manager that locks the memory store when one of the multiple clients is accessing the memory store to prevent access to the memory store by the others of the multiple clients.
- 54. The database server of claim 41, further including a context memory and wherein the memory store uses a first portion of the context memory when communicating with the database on behalf of a first one of the clients and uses a second and different portion of the context memory when communicating with the configuration database on behalf of a second one of the clients.
- 55. A method of providing multiple clients access to a database component stored in a database, the method comprising the steps of:
creating a storage object within a shared cache, wherein the storage object communicates with the database to read to or to write from the database with respect to the database component; using a first client thread to provide communication between a first one of the clients and the database component, wherein the step of using the first client thread includes the steps of;
creating a first communication component that communicates with the first client with respect to the database component; and providing a link between the first communication component and the storage object; and using a second client thread to provide communication between a second one of the clients and the database component, wherein the step of using the second client thread includes the steps of;
creating a second communication component that communicates with the second client with respect to the database component; and providing a link between the second communication component and the storage object.
- 56. The method of claim 55, wherein the step of creating the storage object includes the step of creating a storage object gate associated with the storage object, wherein the storage object gate is adapted to communicate with the server components in the first and second client threads to provide access to the storage object by each of the server components in the first and second client threads.
- 57. The method of claim 56, including the step of using a transactional object to access the database component within the database and to provide communications between the storage object and the database.
- 58. The method of claim 56, further including the step of detecting a change to the database component within the database and notifying the storage object gate of the change.
- 59. The method of claim 58, further including the step of using the storage object gate to notify all of the server components to which the storage object gate communicates of the detected change to the database component and including the step of communicating the detected change to the database component from the notified server components to the clients with which the notified server components communicate.
- 60. The method of claim 59, further including the step of causing the storage object to read the database component from the database when the change to the database component is detected.
- 61. The method of claim 59, wherein the step of communicating the detected change from the notified server components to the clients includes the step of using a satellite communication link to communicate between one of the server components and one of the clients.
- 62. The method of claim 59, wherein the step of communicating the detected change from the notified server components to the clients includes the step of using a wireless communication link to communicate between one of the server components and one of the clients.
- 63. The method of claim 59, wherein the step of communicating the detected change to the database component from the notified server components to the clients includes the step of using a telephone line communication link to communicate between one of the server components and one of the clients.
- 64. The method of claim 59, further including the step of locking the storage object when one of the multiple clients is accessing the storage object to prevent access to the storage object by the others of the multiple clients.
- 65. A method of using a database server to provide a multiplicity of clients concurrent access to components stored in a database having a shared cache, the method including the steps of:
performing the following three steps when a client requests access to a component within the database;
(1) creating a communication component object within a database server that communicates with the client with respect to the component; (2) determining if a shared memory object has been established within the shared cache for the component and creating the shared memory object for the component within the shared cache if the shared memory object has not been established within the shared cache; and (3) providing a communication link between the shared memory object and the communication component; and using the shared memory object to read from and to write to database to thereby read the component from the database and to write to the component within the database; wherein, when two or more clients access the same component, two or more communication component objects are communicatively coupled to the same shared memory object.
- 66. The method of claim 65, further including the step of detecting a change to one of the components and notifying each of the clients that is accessing the one of the components of the detected change.
- 67. The method of claim 66, further including the step of causing the shared memory object for the one of the components to read the changed component from the database.
- 68. The method of claim 66, further including the step of locking one of the shared memory objects when one of the communication components accesses the one of the shared memory objects to thereby prevent other ones of the communication objects from accessing the shared memory component when the one of the communication objects accesses the shared memory object.
- 69. A process control system comprising:
a database located at a first physical location, wherein the database stores database components; a multiplicity of client applications, wherein one of the client applications is located at a second physical location substantially geographically separated from the first physical location; a communication link between the first physical location and the second physical location; and a database server the provides access to the database components within the database by the multiplicity of client applications, the database server including;
a shared cache having a plurality of memory objects, wherein each of the memory objects communicates with the database and stores a copy of one of the database components being accessed by at least one of the multiplicity of clients; and one or more communication objects associated with each of the client applications, wherein each of the communication objects communicates with an associated one of the client applications and with one of the memory objects; wherein a memory object that is being accessed by two or more client applications is communicatively coupled to two or more communication objects.
- 70. The process control system of claim 69, wherein the database server further includes a notify routine that detects changes to one of the database components and that automatically notifies each of the clients accessing the one of the database components of the existence of the change to the one of the database components.
- 71. The process control system of claim 70, wherein the notify routine notifies each of the clients accessing the one of the database components of the state of the one of the database components after the change.
- 72. The process control system of claim 70, wherein the database is a configuration database and wherein the database components are configuration components.
- 73. The process control system of claim 70, wherein each of the communication objects is adapted to read from and to write to the associated one of the memory objects.
- 74. The process control system of claim 70, wherein the database server further includes a lock manager which prevents a first one of the communication components from accessing one of the memory objects when a second one of the communication components is accessing the one of the memory objects.
- 75. The process control system of claim 69, wherein the communication link is a satellite communication link.
- 76. The process control system of claim 69, wherein the communication link is a cellular communication link.
- 77. The process control system of claim 69, wherein the communication link is a telephone line communication link.
- 78. The process control system of claim 69, wherein the communication link is a wireless communication link.
- 79. The process control system of claim 69, wherein the communication link is a wide area network link.
RELATED APPLICATIONS
[0001] This is a regular filed application based on Provisional Application Serial No. 60/160,104 filed Oct. 18, 1999 entitled “Accessing and Updating a Configuration Database From Distributed Physical Locations Within a Process Control System.”
Provisional Applications (1)
|
Number |
Date |
Country |
|
60160104 |
Oct 1999 |
US |
Divisions (1)
|
Number |
Date |
Country |
Parent |
09560199 |
Apr 2000 |
US |
Child |
10222555 |
Aug 2002 |
US |