OMERO events and provenance
What is an event?
As described under OmeroContext, each method call takes place within a single application context (always the same), session, and event. Of these, only event is guaranteed to be unique for every task*. The https://github.com/ome/omero-server/blob/v5.7.0/src/main/java/ome/security/basic/EventHandler.java is responsible for creating new events.
Events as audit log
On each Database-update (INSERT/UPDATE/DELETE), an EventLog is created by
a HibernateInterceptor which is then saved to the database at the end of
the method call (in UpdateImpl).
Relationship to ModuleExecutions
The OMERO Event plays a similar role to the ModuleExecution in the
OME 2 system. They both contain time of create/update/deletion, status,
and type information. Event, however, has lost its ACL/permissions role.
These values have been moved to embedded values represented by the
Details object. Event also is not linked to all the created
SemanticTypes as was ModuleExecution, and so cannot fully
represent the provenance data needed by the AnalysisEngine. At such
time as the AnalysisEngine is ported to Java, the
ModuleExecution object will have to be added.
* Here we say “task” and not method call, because all method calls to a single stateful service instance belong to the same event. This is the nature of a stateful service. Logically, however, it is a single action.
See also
` Hibernate events <https://docs.jboss.org/hibernate/core/3.6/reference/en-US/html/events.html>`_