From JSonic Wiki
Process Modeler is a web-based process designing and modeling tool, which uses standard Business Process Modeling Notifications (BPMN). The BPMN notations include start, end, intermediate, events, gateway, connectors, artifacts, connecting objects and swim lanes. Each business process element such as start and end, among others, can contain more elements also. For example, start category contains elements such as start, conditional, message, multiple, signal and timer. Process model developed in swim lanes makes the interaction between various roles and activities quite simple to understand. The intuitive drag and drop features help process owners to create any process model quite easily. Process Modeler enables creating and storing of various processes with different process names.
It marks the rules which are used to model a process using BPMN. For example "stop" symbol can't be used to start a process or the two branches (Yes/No) of a decision making box can’t direct to same activity box. An error is generated whenever invalid use of notations is discovered. This helps designers to model the process correctly, as required by BPMN framework.
Business Rules Engine
All the business rules governing the processes reside in this engine. It enables the process owner to modify the business logic as required. The Business Rules Engine monitors deviation between the actual business logic and business process created by BPM. For example, if an accountant executive is not permitted to take decisions regarding approval of credit limits, then rules engine takes care of the same in actual scenario. In simple terms, business rules engine is a watchdog overseeing the compliance of business guidelines during the process automation and execution phase.
It is a built-in dry run kind of simulation system for checking the performance of the process modeled. Process owners can give process inputs and observe its output. This enables stakeholders to identify the bottlenecks hindering the performance of the process, remove the constraints and again run it for checking the output. This kind of iteration facilitates in optimizing the process.