Object-Event Modeling and Simulation

Object-Event Modeling and Simulation (OEM+OES) are general system modeling and Discrete Event Simulation paradigms based on modeling objects and events as the fundamental components of a discrete dynamic system. In OEM, the state structure of a system can be modeled with UML Class Diagrams defining both object and event types, and the system's dynamics can be modeled with conceptual process models (in BPMN) and process design models (in DPMN, which is an extension of Schruben's Event Graphs).

Agent/Object-Event Simulation (A/OES), is an extension of basic OES by adding the concepts of agents, perception, communication and action.

Sim4edu currently provides the OESjs simulation framework, which is a JavaScript implementation of the OES paradigm, or. more precisely, of its language OESL and its abstract simulator that supports both next-event time progression, as used in discrete event simulation, and fixed-increment time progression, as used in NetLogo-based social science simulations as well as in continuous state change simulations. The next simulator/framework on the roadmap of Sim4edu is called AOESjs, which implements the A/OES paradigm for agent-based discrete event simulation.

A real-world discrete event system (or discrete dynamic system) consists of:

  • objects (of certain types) whose states may be changed by
  • events (of certain types) occurring at a point in time from a discrete set of time points.

This means that in order to model a discrete event system using OES, we have to

  1. Describe its object types and event types.
  2. Specify, for any event type, which causal regularity, responsible for state changes of objects and follow-up events, is triggered by events of that type. Causal regularities are captured by event rules.

The OES language (OESL) allows defining:

  1. Object types in the form of classes (of an object-oriented language like UML or JavaScript),
  2. Event types in the form of classes, and their event rules in the form of a special onEvent method in the corresponding event class.

OESL is a historic successor of ERSL, since the OES paradigm has been developed as a continuation of an earlier R&D project called Entity-Relationship Modeling and Simulation. Likewise, A/OESL is a historic successor of AORSL, since the A/OES paradigm has been developed as a continuation of an earlier R&D project called Agent-Object-Relationship Simulation.

In OES, two categories of simulated events are distinguished:

  1. Exogenous events occur, periodically, due to factors that are external to the simulation model. Their re-occurrence pattern is modeled in the form of a recurrence function.
  2. Caused events are simulated events that are caused by other simulated events.

An OES scenario consists of:

  • An OES model defining object types and event types (with event rules), as well as output statistics. It may include a space model definition.
  • Simulation parameter definitions, like the length of the simulation, an execution delay for real-time simulation, or a seed for the random number generator.
  • An initial state definition.

It may also include

  • A visualization definition (like a 3D visualization of a 2D space model).
  • User interface (UI) definitions, e.g. a UI for defining the initial state or a UI for defining the form of visualization.

An OES model may consist of:

  • Object types
  • Event types with event rules defining the causation of state changes and follow-up events
  • A space model such as a grid space or a 2D/3D continuous space
  • Statistics variables
  • Global variables and/or global functions