| Home >> All |
desmoj: Javadoc index of package desmoj.
Package Samples:
desmoj
Classes:
TransportJunction: The TransportJunction is the place where Transporter s pick up the goods to move them around in a manufacturing system. The goods are normally modeled as some kind of SimProcess es. So what happens at the TransportJunction is some kind of Rendez-vous synchronisation, where Transporter s meet the goods to carry them around. There is one wait queue for the masters ( Transporter s) and one queue for the slaves ( SimProcess es), where they have to wait for each other to cooperate. The Transporter s are the masters which perform the transportation. The corporate transportation process is described in ...
Entrepot: Entrepot is some kind of storage where products (in the form of SimProcess es) can be stored. They will be stored in a kind of FIFO order, that means the products arriving first at the Entrepot will be the first ones to be removed. One can remove products from the Entrepot in order to sell (or dispatch) them or to process them in any other way. Note: while products can enter the Entrepot themselves, another process ( SimProcess ) is needed to remove the products from the Entrepot. Because the product processes are passivated while they are stored in the Entepot! The Entrepot has no capacity limit, ...
Event: Provides the superclass for user defined events to change an entity's internal state. The state of a discrete model is changed by events that occur at distinct points of simulation time. An event only acts on one entity, changing its state according to the entity's reaction to the specific event in the system under inspection. So each type of event acting on one certain type of entity reqires a new subclass to be derived from this class. Since events are associated to a single Entity, the method executing the changes of state of a specific entity gets that entity passed as a parameter. The scheduler ...
Entity: Represents the superclass for all entities of a model. Entities are supposed to be scheduled together with a compatible event at a certain point of simulation time or relative to another event in present or future simulation time. Entities typically encapsulate all information about a model's entity that is relevant to the modeller. Events can manipulate these informations when the scheduled point of simulation time is reached and thus change the state of the model. When modelling different types of entities you need to derive different classes from this superclass. Each carrying the specific information ...
Processing: Processing is the object representing the processing process taking place at a WorkStation where a Worker process or a MachineProcess are processing some parts (products) to manufacture some new parts (or products). The kind and the number of parts being processed are determined by a PartsList . The parts (or products) are represented by SimProcess es. The Worker and the MachineProcess are also some kind of SimProcess es. But one Worker or MachineProcess is the master process and the other processes are all slave processes. It is intended that that this Processing is used with the WorkStation construct, ...
CondQueue: In a CondQueue processes are waiting for a specific condition to become true. Process synchronisation happens when processes are waiting in a queue for a specific condition to become true. Each process which uses waitUntil(condition) and does not find this condition to be true, is inserted in a waiting queue automatically. Whenever something happens which might influence the condition to become true , signal() should be used to check if the first entity (or, if the attribute checkAll is set to true, all entities) in the waiting queue finds the desired condition now and therefore can continue. The ...
Stock: Stock is the place where a certain kind of product can be stored by producers and retrieved by consumers. There is no difference between the units of one kind of product, the units are indistinguishable. Producers are producing products and store them using store() in the Stock. Consumers make the Stock retrieve() the products to use them up. A Stock is also providing a process synchronization between producers and consumers. If no or not enough units of a product are available for the consumers, they have to wait in a queue until new units are delivered by a producer. The Stock has a certain capacity. ...
Res: Res is the place where resources are stored in a pool. Processes can come by and the resource pool will provide() resources to them. Each process has to give back the same resources it once has acquired by calling the takeBack() method of the Res. Res is used to implement process synchronization between processes, which are using resources. The resource pool has a limited capacity. A process can acquire one or more resources and use them. After usage the process must release this or these same resources to make them available to other processes. If a process can not get the number of resources ...
WaitQueue: The WaitQueue is used to synchronize the cooperation of two processes. One process (the master) has the leading role and is performing the cooperation while the other process (the slave) is passive during this period. The slave will be activated again after the cooperation is done. The master process is calling cooperate() to signal that it is willing to cooperate as a master. Slaves are calling waitOnCoop() . The action performed during the cooperation of the two processes has to be implemented in the method cooperation() in the class ProcessCoop . There are two waiting queues, one for the masters ...
Model: The model is supposed to carry references to all static modelcomponents associated to a model. These are modelcomponents like distributions and statistic counters. Note that placing all essential components inside the model class allows you to use object orientation to reuse this model to implement different versions of it using subclassing for changes necessary for using other modelling paradigms. This way models can be easily reimplemented following the process-, event-, transaction- or activity- oriented paradigm. Note that transaction- and activity-oriented modelling requires the higher process ...
SimpleTransporter: A SimpleTransporter is a simple transporter (vehicle) associated to a TransportJunction . There it waits for goods to transport them. The goods are transported for a certain time and than released. The SimpleTransporter returns to his TranspsortJunction where it waits again for some other goods to transport. The time it takes the transporter to return to its TransportJunction must be specified in the parameter returnTime . It must be some kind of desmoj.dist.RealDist* random number stream. The SimpleTransporter has a certain capacity (maximum number of goods which can be carried around at once) ...
DemandProcess: DemandProcess is a kind of process representing the demand in a manufacturing system. It is some kind of drain for the products manufactured in the production system. So it can be viewed as the border of the simulated system, where the products disappear. It is meant to model the demand of the market where the finished products leaving the manufacturing system are sold. It has three main parameters to be specified (see the Constructor): The Entrepot where the products to be sold are stored, the random number distribution to determine the quantity of demanded products, the rate (frequenzy) also ...
SimClock: The simulation clock shows the actual simulation time. The actual simulation time can be polled by any object but can only be set by the scheduler responsible for the actual model. The simulation clock is extending class java.util.Observable thus representing the 'observable' part in a 'observer'-design pattern as described in [Gamm95] page 107. This enables observers to register themselves at the simulation clock to be notified whenever the simulation time changes. This can be easily used to provide fully automatic statistical counters. Each time the simulation time changes, a counter registered ...
Transportation: Transportation is the object representing the process cooperation between a Transporter process and the goods (products represented by SimProcesses) he is transporting. It is intended that that this Transportation is used with the TransportJunction construct, where a Transporter ( as a master process) is waiting for goods (slave processes) to carry them around in the manufacturing system. During the Transportation the master is active and the slaves are passive. The transportation carried out together is described in the method cooperation , which can be overwritten by the user to build more complex ...
TimeConverter: TimeConverter is a class used by Experiment to convert sim time values to true time values and vice versa. A true time value is a point in "real" time specified as a String consisting of a date and a time, for example "26.3.2001 13:25". In order to map the sim time values to true time values a reference time and a time unit are needed. The class TimeConverter implements the interface Units to easily use the time units and conversion factors defined there. Every experiment has its own time converter and provides methods for time conversion. The TimeConverter class is not intended for direct use ...
ProcessQueue: ProcessQueue provides models with a ready-to-use element to enqueue SimProcess es in. The sort order of the ProcessQueue is determined first by the priorities of the enqueued SimProcesses and second by the given sort order. The default sort order is fifo (first in, first out) but others like lifo (last in, first out) can be chosen, too. See the constants in class QueueBased and the derived classes from QueueList . The capacity of the ProcessQueue, that is the maximum number of SimProcesses enqueued, can be chosen, too. Note that in contrast to the 'plain' queue, this ProcessQueue always expects ...
ProcessCoop: ProcessCoop is the object representing the process cooperation between two processes. It is intended that this process cooperation is used with the WaitQueue construct, where one process is the master which really executes the cooperation and the other process is the slave waiting for a master to lead him through the cooperation. That means that during the cooperation the master is active and the slave is passive. The action carried out for the two processes together is described in the virtual method cooperation , which is to be implemented by the user building the model. This class is encapsulating ...
Experiment: Experiment is the class that provides the infrastructure for running the simulation of a model. It contains all data structures necessary to simulate the model and takes care of all necessary output. To actually run an experiment, a new instance of the experiment class and a new instance of the desired model have to be created. To link both instances, call the connectToExperiment(Experiment e) method of the model instance and pass the new experiment as a parameter. Additional functionality by Ruth Meyer: Experiments may be "timed", i.e. the simulation time (represented as doubles) may be mapped ...
QueueListLifo: Contains the implementation of a double linked list to represent queueing functionality. The entities are queued first according to their priority and second in last in first out order. The statistc data of the queue will be stored in a QueueBased object. The QueueListLifo has a reference to its QueueBased object. It uses the QueueLink class to build a list out of links with references to each element's predecessor, successor, the QueueBased object this QueueListLifo is associated to and of course, the Entity that is supposed to be enqueued here. This class needs a reference to a subclass of QueueBased ...
QueueListFifo: Contains the implementation of a double linked list to represent queueing functionality. The entities are queued first according to their priority and second in first in first out order. The statistc data of the queue will be stored in a QueueBased object. The QueueListFifo has a reference to its QueueBased object. It uses the QueueLink class to build a list out of links with references to each element's predecessor, successor, the QueueBased object this QueueListFifo is associated to and of course, the Entity that is supposed to be enqueued here. This class needs a reference to a subclass of QueueBased ...
Bin: Bin is the place where producers can store their products for consumers to come and use them up. Bin is used to implement process synchronization between producers and consumers. Producers are producing products and store them using store() in the bin. Consumers make the Bin deliver() the products to use them up. If no or not enough units of a product are available for the consumers, they have to wait in a queue until new units are delivered by a producer. The first sort criteria of the queue is always highest priorities first, the second queueing discipline of the underlying queue and the capacity ...
QueueBased: Provides the typical statistics common to all ModelComponents based on Queues. It is set abstract to prevent users to use it straight without deriving a class first because it only provides the functionality for statistical data extraction, not the functionality for actually queueing Entities. The statistical values provided are the queue's length and its elements' waiting times with minimum, maximum, mean and standard deviation for each. This class should be used when any type of ModelComponent using Queues is created. In combination with class QueueList an automatic insert/remove mechanism including ...
ArrivalProcess: An ArrivalProcess is some kind of source for SimProcess es. It makes them arrive from the 'outside world' in the system of interest. So it can be viewed as the border of the system (model). The user has to specify at which rate (frequency) SimProcess es are arriving in the system. See the Constructor for more details. The user has to derive from this class to make his own ArrivalProcesses for the arriving processes he needs in his simulated system. He has to implement the abstract method createSuccessor() , which should create (instantiate) the newly arriving process. It is recommended to use one ...
EventList: This interface describes the set of methods an event-list carrying the scheduled events and entities in a temporal order has to implement. This is a part of the framework that does not have to be implemented by the user in order to get a simulation running, since the scheduler already uses the class EventVector as default EventList construction. Since each step in the discrete simulation requires searching and manipulating the event-list, this is probably one of the best places in the framework to optimize execution performance. Especially if special models show specific behaviour i.e. primarily ...
CustomerProcess: CustomerProcess is a kind of process representing a customer. He is fetching a certain number of products from an Entrepot to use them up. He is not doing anything special with them and so the products will be collected by the garbage collector. To change this behavior overwrite the method lifeCycle() in a subclass. The CustomerProcess can be viewed as the border of the simulated system, where the products disappear. It is intended to be used in conjunction with the DemandProcess . CustomerProcess has two main parameters to be specified (see the Constructor): The Entrepot where the products are ...
| Home | Contact Us | Privacy Policy | Terms of Service |