The EN engine communicates with the database management engine in order to input or retrieve objects of the notebook, providing full support for browsing, searching, and visualizing the stored data. The engine communicates with data acquisition engines in order to automatically, and in real-time, insert instrument and collected data information into the notebook. The engine ensures the secure access to the notebook by verifying user's login and password information against information stored in the database. The engine also performs access control of notebook objects, by only allowing input and retrieval of objects that are owned by the notebook user. A notebook object is owned by the user that created it and also by the collaborating users that have been given shared access by the object creator.
Access control is performed at the first level of notebook objects.
Access control to the object subtree of each first level object is inherently accomplished by the database management system, i.e., a query to manipulate objects does not succeed unless information on the object parent is obtained. The engine maintains shared state of the events performed by all clients so that time sequence consistency among generated events is guaranteed. Also, the shared state is sent to each client at login, thereby avoiding the delays of retrieving it from the database management system. The Database management engine is an extended set of the OPM and the OPM tools that offer uniform access to multiple databases systems and that can respond to EN engine requests. The EN engine submits commands to the database management engine through the Java RMI interface.