Browse Prior Art Database

User Defined Monitors for Business Process Simulation

IP.com Disclosure Number: IPCOM000124825D
Original Publication Date: 2005-May-09
Included in the Prior Art Database: 2005-May-09
Document File: 3 page(s) / 23K

Publishing Venue

IBM

Abstract

The problem being addressed by this publication is how to allow other components to monitor a simulation in progress.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 59% of the total text.

Page 1 of 3

User Defined Monitors for Business Process Simulation

A callout mechanism is described which broadcasts notification of simulation engine state changes to one or more external (user defined) listeners. The advantage of publication allows 3rd party vendors to monitor and get control of all state changes during a simulation run. Applications of this publication include real-time graphical views of the business model (resource utilization, control panel, animation etc.), logging of simulation events, real-time collection of user defined performance indicators, and user controlled suspension of a simulation run.

Whenever a state change occurs the simulation engine calls the appropriate API on each of the listeners supplied by the user.Parameters passed in these APIs provide sufficient metadata for 3rd party vendors to monitor events of the simulation engine. This provides a context to the listener to navigate the process and extract the desired simulation attributes.

package com.ibm.btools.sim.engine.protocol; import java.math.BigDecimal;

public interface Updater { /**

     Called whenever the state of connector changes. **/ public void update( int state , long time , Connection connector , PacketView p , int qindex);

/**

     Called whenever the virtual time changes. **/ public void update( long time);

/**

     Called whenever a packet is created. **/ public void update( int id , long time , PacketView p);

/**

     Called whenever the state of process changes. **/ public void update( int state , long time , SimulationProcess process);

/**

     Called whenever the state of node changes. **/ public void update( int state , Task node);

1

Page 2 of 3

/**

     Called whenever a task instance is entered. **/ public void update( int state , long time , TaskInstanceView taskInstanceView);

/**

     Called whenever the cost is updated (not nessessarily changed). **/ public void updateCost(BigDecimal cost);

/**

     Called during the end of simulation. **/ public void updateEndOfSimulation(SimulationEngine engine);

/**

     Called whenever an event is removed from the system queue and is about to be processed. **/ public void updateEvent(RootObject rootObject , int id);

/**

     Called whenever the state of input port changes. **/ public void updateInputPort( int state , long time , Port inputPort);

/**

     Called whenever this packet is about to enter a pre - existing task. **/ public void updateInput(PacketView packet...