Architecture
This section gives an overview over the backend code and its package structure. It should provide a starting point for exploring the Chimera code. An overview of the architecture prior to release 1.3 can be found here
This package provides the object structure for case models.
The Persistence Manager is responsible for saving Case Models and Cases into the database. More information about the new persistence layer implemented with JPA 2 and EclipseLink can be found here.
Responsible for de-serializing case models sent from Gryphon case modeler. Case models are specified using JSON, containing XML strings to represent fragments. For the exact specification of the input format, see the Gryphon developer documentation.
- The
de.hpi.bpt.chimera.parser
package contains JSON wrapper classes for the deserialization of case model data. - The
de.hpi.bpt.chimera.parser.fragment
package contains parser classes for retrieving information from the given data to parse a fragment. - The
de.hpi.bpt.chimera.parser.fragment.bpmn
package contains classes to parse the XML wrapper classes in a useful object struture. - The
de.hpi.bpt.chimera.parser.fragment.bpmn.unmarshaller.xml
package contains XML wrapper classes for the deserialization of the fragments and their BPMN elements - The
de.hpi.bpt.chimera.validation
package is used to perform different checks on a case model. This includes:- Checking names to prevent SQL injection
- Checking, that all data objects used in fragments belong to a data class defined in the case model
- Validating that activities only perform such data object transitions that are conformant with the object lifecycle (OLC)
This package handles the execution of cases. More information can be found on a separate page ExecutingCases.
-
package
de.hpi.bpt.chimera.execution.controlnodes
defines classes in form of an instance for the runtime representation for the objects of model elements, e.g. gateway, activity, event. It provides theControlNodeInstanceFactory
that instatiates control nodes from a case model.ActivityInstance
represents an activity at runtime. -
package
de.hpi.bpt.chimera.execution.controlnodes.event.eventhandling
implements the integration with the event handling platform Unicorn. See section Event Integration. -
package
de.hpi.bpt.chimera.execution.data
contains the data manager a logic unit for every case executioner for managing data objects during the case execution. It creates and locks data objects and checks the termination condition.
Defines the REST interface (created with Jersey). The REST interface is documented with swagger. An interactive documentation is available in the deployed system at https://bpt-lab.org/ChimeraDev/swagger.
-
Case Model Deployment
-
Case Instantiation
-
Begin Activity Instance
-
Terminate Activity Instance
Provides classes and a REST interface for logging and retrieving the steps of the case execution. Chimera logs a) state changes of activity instances, b) state changes of data objects, and c) value changes of data attributes (TODO: state changes of events). The log can be exported in XES data format.
Different utility methods for converting data structures to JSON/XML, and for operations needed for computing input and output sets in fragments. Contains also the PropertyLoader
to read properties from the configuration file.
This package provides a REST interface for configuring E-Mail-Tasks (email address and message body).
Cases are executed via the frontend which shows an overview of enabled and running tasks. It is based on AngularJS.