public class SimulationService extends Object
submit.
Cette classe sert aussi de modele pour le moniteur de queue
Il existe une instance unique pour toute l'application
Lors de l'instanciation de la classe, l'ensemble des
SimulatorLauncher disponible est recherche dans la configuration
et un executor est cree pour chaque.
Si un SimulatorLauncher genere trop d'erreur (RemoteException)
Il est alors suspendu pour ne plus etre utilise pour les simulations.
| Modifier and Type | Class and Description |
|---|---|
static class |
SimulationService.Counter
Permet de manipuler un int entre plusieurs appele de methodes recursive.
|
static class |
SimulationService.PrepareSimulationJob
Permet de genere les sous simulations d'un plan de simulation.
|
| Modifier and Type | Field and Description |
|---|---|
protected boolean |
autoLaunch |
protected Map<SimulatorLauncher,SimulationExecutor> |
executors
Tous les types de
SimulatorLauncher disponibles, et leur
executors associe |
protected Set<String> |
idJobs
Contient les identifiants des simulations presentes dans
jobs |
protected static SimulationService |
instance |
protected Set<SimulationJob> |
jobDones
La liste des jobs termines
|
protected Set<SimulationJob> |
jobs
La liste des jobs existant (queue + job demarre)
|
protected Map<SimulatorLauncher,org.apache.commons.lang3.mutable.MutableInt> |
launcherError
Le nombre d'erreur pour les SimulatorLauncher
|
protected org.nuiton.util.ListenerSet<SimulationServiceListener> |
listeners |
static int |
MAX_PLAN_SIMULATION
nombre maximal de simulation autoriser pour un plan
|
protected PropertyChangeSupport |
propertyListeners |
protected SimulationQueue |
queue
La queue contenant toutes les simulations a faire
|
static String |
SIMULATION_LAUNCHER |
protected ExecutorService |
subSimulationComputationExecutor
L'executor utilise pour creer toutes les sous simulations des plans
independants
|
| Modifier | Constructor and Description |
|---|---|
protected |
SimulationService()
Cree une instance et initialise les executors ainsi que le launcherError
|
| Modifier and Type | Method and Description |
|---|---|
void |
addPropertyChangeListener(PropertyChangeListener listener) |
void |
addPropertyChangeListener(String propertyName,
PropertyChangeListener listener) |
void |
addSimulationLauncher(SimulatorLauncher sl)
Permet d'ajouter un nouveau SimulatorLauncher.
|
void |
addSimulationServiceListener(SimulationServiceListener l) |
protected boolean |
cancel(SimulationJob job)
Supprime un job de la queue (annulation d'une simulation).
|
void |
clearJobDone()
Nettoie la liste des jobs faits
|
protected void |
compileAllFile(SimulationControl control,
File directory)
Compile les fichiers présent dans le répertoire passé en
parametre, ce répertoire est hiérarchisé en: rules, exports, simulators
et scripts.
|
boolean |
exists(String id) |
protected void |
fillDesignPlanNominalValue(org.nuiton.topia.TopiaContext context,
DesignPlan designPlan)
Explore design plan factor tree, and set factor nominal value
for each factor.
|
protected void |
fireStartEvent(SimulationJob job)
Ajoute le job au job en cours previent s'il n'etait pas deja present
les listeners
SimulationServiceListener.simulationStart(SimulationService, SimulationJob). |
protected void |
fireStopEvent(SimulationJob job)
Supprime le job de la liste des jobs en cours et l'ajoute le job si
besoin a la liste des jobs faits (s'il y a une erreur ou qu'il ne sagit
pas d'une simulation lancer par un plan de simulation).
|
protected void |
generatePreScript(org.apache.commons.beanutils.ConvertUtilsBean beanUtils,
StringBuffer buffer,
SimulationService.Counter counter,
Collection<Factor> factors)
Generate prescript for a factor list that can be called recursively to
manage factor group.
|
protected String |
generatePreScript(Scenario scenario)
Generate prescript to set factor values before simulation start.
|
Set<SimulationJob> |
getJobDones() |
Set<SimulationJob> |
getJobs() |
static SimulationService |
getService()
Retourne l'instance du
SimulationService a utiliser |
Collection<SimulationExecutor> |
getSimulationExecutors() |
List<SimulatorLauncher> |
getSimulationLaunchers()
Retour les lanceurs ayant un executor.
|
protected Set<SimulatorLauncher> |
getSimulatorLaunchers()
Retourne la liste de tous les
SimulatorLauncher disponible. |
boolean |
isAutoLaunch() |
protected File |
prepareSimulationZipFile(SimulationControl control,
SimulationParameter param,
String xmlDesignPlan,
SensitivityScenarios sensitivityScenarios,
boolean compile)
Prepare les fichiers qui seront utilsé à la simulation:
scripts
rules
exports
simulators
export de la database de la region
simultionplan
|
void |
removePropertyChangeListener(PropertyChangeListener listener) |
void |
removePropertyChangeListener(String propertyName,
PropertyChangeListener listener) |
void |
removeSimulationServiceListener(SimulationServiceListener l) |
protected void |
reportError(SimulatorLauncher launcher,
SimulationJob job)
Report une erreur pour un launcher, on resoumet le job en supprimant
le launcher utilise
|
void |
restart(SimulationJob job)
Restart a job.
|
protected void |
resubmit(SimulationJob job)
Permet de resoumettre un job qui a ete pris par un thread mais qu'il
ne peut pas traiter.
|
void |
setAutoLaunch(boolean autoLaunch) |
protected void |
submit(SimulationJob job) |
void |
submit(String id,
SimulationParameter param,
SimulatorLauncher launcher,
int priority)
Permet d'ajouter une nouvelle simulation a la queue.
|
void |
submit(String id,
SimulationParameter param,
SimulatorLauncher launcher,
int priority,
SensitivityAnalysis sensitivityAnalysis,
DesignPlan designPlan)
Permet d'ajouter une simulation avec des factors a prendre en compte.
|
void |
submitForCheckOnly(SimulationJob job)
Resoumet une simulation qui a deja été démarrée, mais
on ne faisant que du control de monitoring.
|
protected void |
submitSubJob(SimulationJob job)
Permet de soumettre a la queue un job provenant d'un plan.
|
protected void |
waitAutoLaunch()
Permet de mettre en attente les threads de simulation si l'utilisateur
a suspendu la queue
|
public static final String SIMULATION_LAUNCHER
public static final int MAX_PLAN_SIMULATION
protected static SimulationService instance
protected PropertyChangeSupport propertyListeners
protected org.nuiton.util.ListenerSet<SimulationServiceListener> listeners
protected boolean autoLaunch
protected ExecutorService subSimulationComputationExecutor
protected Map<SimulatorLauncher,SimulationExecutor> executors
SimulatorLauncher disponibles, et leur
executors associeprotected Map<SimulatorLauncher,org.apache.commons.lang3.mutable.MutableInt> launcherError
protected SimulationQueue queue
protected Set<SimulationJob> jobs
protected Set<SimulationJob> jobDones
protected SimulationService()
public static SimulationService getService()
SimulationService a utiliserpublic void addSimulationLauncher(SimulatorLauncher sl)
sl - le SimulatorLauncher a ajouterpublic List<SimulatorLauncher> getSimulationLaunchers()
public Collection<SimulationExecutor> getSimulationExecutors()
public Set<SimulationJob> getJobs()
public Set<SimulationJob> getJobDones()
protected Set<SimulatorLauncher> getSimulatorLaunchers()
SimulatorLauncher disponible.SimulatorLauncherspublic void addSimulationServiceListener(SimulationServiceListener l)
public void removeSimulationServiceListener(SimulationServiceListener l)
public void addPropertyChangeListener(PropertyChangeListener listener)
public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener)
public void removePropertyChangeListener(PropertyChangeListener listener)
public void removePropertyChangeListener(String propertyName, PropertyChangeListener listener)
protected void fireStartEvent(SimulationJob job)
SimulationServiceListener.simulationStart(SimulationService, SimulationJob).job - protected void fireStopEvent(SimulationJob job)
SimulationServiceListener.simulationStop(SimulationService, SimulationJob).job - public void clearJobDone()
public boolean isAutoLaunch()
public void setAutoLaunch(boolean autoLaunch)
autoLaunch - The autoLaunch to set.protected void waitAutoLaunch()
public void submit(String id, SimulationParameter param, SimulatorLauncher launcher, int priority)
id - l'identifiant de la simulationparam - les parametres de la simulationlauncher - le launcher a utiliser pour lancer la simulationpriority - la priorite de la simulationpublic void submit(String id, SimulationParameter param, SimulatorLauncher launcher, int priority, SensitivityAnalysis sensitivityAnalysis, DesignPlan designPlan)
id - l'identifiant de la simulationparam - les parametres de la simulationlauncher - le launcher a utiliser pour lancer la simulationpriority - la priorite de la simulationsensitivityAnalysis - l'implementation du calculateur de sensibilitedesignPlan - le design plan qui contient les facteursprotected void fillDesignPlanNominalValue(org.nuiton.topia.TopiaContext context,
DesignPlan designPlan)
context - opened database contextdesignPlan - design planprotected String generatePreScript(Scenario scenario)
scenario - to generate prescriptprotected void generatePreScript(org.apache.commons.beanutils.ConvertUtilsBean beanUtils,
StringBuffer buffer,
SimulationService.Counter counter,
Collection<Factor> factors)
beanUtils - beanUtils converterbuffer - buffer to fillcounter - call counter used to avoid variables name collisionfactors - factor list to manageprotected void submit(SimulationJob job)
protected void resubmit(SimulationJob job)
job - l'item a resoumettreprotected void submitSubJob(SimulationJob job)
job - public void submitForCheckOnly(SimulationJob job)
job - job to submitpublic void restart(SimulationJob job)
job - job to retstartprotected boolean cancel(SimulationJob job)
SimulationJob.stop()job - le job a annulerpublic boolean exists(String id)
protected void reportError(SimulatorLauncher launcher, SimulationJob job)
launcher - le launcher posant problemejob - le job qui n'a pas reussi a se faireprotected File prepareSimulationZipFile(SimulationControl control, SimulationParameter param, String xmlDesignPlan, SensitivityScenarios sensitivityScenarios, boolean compile) throws SimulationException
Le tout est zippé et le zip est retourné, il peut-être directement
importé dans le SimulationStorage (en le renommant comme
il faut SimulationStorage.importAndRenameZip(File, String).
Ce zip est automatiquement supprimé à la fin de l'application.
control - le controleurparam - les parametre de la simulationxmlDesignPlan - contenu xml des design plansensitivityScenarios - used to add some extra files (such as rules)compile - si vrai la version compile des fichiers Java est aussi
mise dans le fichier zip. Cela peut servir pour les simulations locales
pour ne pas recompiler pour chaque simulation avec plan de simulationSimulationException - pour tout problème rencontré (IO,Topia...)protected void compileAllFile(SimulationControl control, File directory)
Il permet donc de compiler facilement tous les fichiers pour une simulation
control - le controleurdirectory - le répertoire où compilerCopyright © 1999-2013 CodeLutin. All Rights Reserved.