Einführung in das Simulationsframework Referent: Jan Schröter
AWS00/sim2 Übersicht basiert auf dem Simsalabim-Paket von Martin Öster und Johan Larson stellt ein Grundgerüst für ereignisorientierte Simulation dar geschrieben in Java 1.1 Sammlung von Klassen und Interfaces, die einen Rahmen bilden für die Simulation
AWS00/sim3 Die Framework-Klassen: SimSystem Die eigentliche Simulationsengine. Arbeitet die in der Eventwarteschlange wartenden Events ab. Methoden: start() - startet die Simulation, nimmt jeweils nächstes Ereignis aus der Warteschlange und ruft dessen resume()-Methode auf. Dabei werden allen Supervisor benachrichtigt. post(SimEvent e) - fügt ein neues Ereignis in die Warteschlange ein Achtung: Events können illegalerweise in die Vergangenheit gepostet werden! addSupervisor() - Fügt dem System einen neuen Supervisor hinzu
AWS00/sim4 Die Framework-Klassen: SimEvent Abstrakte Klasse eines Event. Flags: isDue - ist soll das Ereignis ausgeführt werden (dadurch Löschen möglich) isPrimary - falls true, werden zuerst die Supervisor benachrichtigt Methoden: resume() - Ereignisroutine des Ereignisses, wird von SimSystem aufgerufen
AWS00/sim5 Die Framework-Klassen: SimSupervisor Interface, das eine Überwachungsinstanz des Simulationslaufes modelliert. Hier können statistische Daten gesammelt werden. Methoden: supervise(SimEvent e) - Jedes abgearbeitete Ereignis wird den Supervisor-Objekten durch diese Methode übergeben.
AWS00/sim6 Die Framework-Klassen: Der Rest SimReceiver - Interface, die Events empfangen kann (legacy von Simsalabim) Linkage & List - Hilfsklassen zur Realisierung von Warteschlangen
AWS00/sim7 Ablauf der Eventbehandlung
Beispiel: simExample.CallCenter
AWS00/sim9 Beispiel: simExample.CallCenter Das Beispiel aus der Vorlesung mit Hilfe des Simulationsframeworks. folgende Klassen: CallCenter CallSupervisor NewCustomerEvent EndOfServiceEvent EndOfPatienceEvent EndOfSimEvent