Class Server
java.lang.Object
QueueNet.NodeSection
NodeSections.PipeSection
NodeSections.ServiceSection
NodeSections.Server
- Direct Known Subclasses:
PreemptiveServer, PSServer, PSServerPriority
This class implements a multi-class, single/multi server service.
Every class has a specific distribution and a own set of statistical
parameters.
A server service remains busy while processing one or more jobs.
- Author:
- Francesco Radaelli, Stefano Omini, Bertoli Marco
-
Nested Class Summary
Nested Classes -
Field Summary
Fields inherited from class NodeSection
EXCEPTION_MEASURE_DOES_NOT_EXIST, EXCEPTION_PROPERTY_NOT_AVAILABLE, INPUT, jobsList, logger, MSG_NOT_PROCESSED, MSG_PROCESSED, NO_ADDRESS, OUTPUT, PROPERTY_ID_ARRIVING_JOBS, PROPERTY_ID_AVERAGE_UTILIZATION, PROPERTY_ID_DEPARTING_JOBS, PROPERTY_ID_RESIDENCE_TIME, PROPERTY_ID_RESIDENT_JOBS, PROPERTY_ID_UTILIZATION, SERVICE -
Constructor Summary
ConstructorsConstructorDescriptionServer(Integer numberOfServers, Integer[] numberOfVisits, ServiceStrategy[] serviceStrategies) Server(Integer numberOfServers, Integer[] numberOfVisits, ServiceStrategy[] serviceStrategies, Integer[] serverNumRequired, String[] serverTypesNames, Integer[] serverTypesNumOfServers, Object[] serverTypesCompatibilities, String schedulingPolicy) Server(Integer numberOfServers, Integer[] numberOfVisits, ServiceStrategy[] serviceStrategies, Object[] switchoverStrategies, Integer[] serverNumRequired, String[] serverTypesNames, Integer[] serverTypesNumOfServers, Object[] serverTypesCompatibilities, String schedulingPolicy) Server(Integer numberOfServers, Integer[] numberOfVisits, ServiceStrategy[] serviceStrategies, Object[] delayOffStrategies, Object[] setUpStrategies, Integer[] serverNumRequired, String[] serverTypesNames, Integer[] serverTypesNumOfServers, Object[] serverTypesCompatibilities, String schedulingPolicy) Server(Integer numberOfServers, Integer[] numberOfVisits, ServiceStrategy[] serviceStrategies, Object[] switchoverStrategies, Object[] delayOffStrategies, Object[] setUpStrategies) Server(Integer numberOfServers, Integer[] numberOfVisits, ServiceStrategy[] serviceStrategies, Object[] switchoverStrategies, Object[] delayOffStrategies, Object[] setUpStrategies, Integer[] serverNumRequired, String[] serverTypesNames, Integer[] serverTypesNumOfServers, Object[] serverTypesCompatibilities, String schedulingPolicy) Server(Integer numberOfServers, Integer[] numberOfVisits, ServiceStrategy[] serviceStrategies, Map<String, Object> advancedFeatures) Server(Integer numberOfServers, Integer[] numberOfVisits, ServiceStrategy[] serviceStrategies, QueuePutStrategy[] preemptiveStrategies) Server(Integer numberOfServers, Integer[] numberOfVisits, ServiceStrategy[] serviceStrategies, QueuePutStrategy[] preemptiveStrategies, Integer[] serverNumRequired, String[] serverTypesNames, Integer[] serverTypesNumOfServers, Object[] serverTypesCompatibilities, String schedulingPolicy) Server(Integer numberOfServers, Integer[] numberOfVisits, ServiceStrategy[] serviceStrategies, QueuePutStrategy[] preemptiveStrategies, Object[] switchoverStrategies, Object[] delayOffStrategies, Object[] setUpStrategies, Integer[] serverNumRequired, String[] serverNames, Integer[] serversPerServerType, Object[] serverCompatibilities, String schedulingPolicy) -
Method Summary
Modifier and TypeMethodDescriptionBoolean[][]Returns class compatibilities for specific nodedoublegetDoubleSectionProperty(int id) Gets a double type property of this node.doublegetDoubleSectionProperty(int id, JobClass jobClass) Gets a double type property of this node depending on a specified job class.Gets the last job info in the service list.intgetNumOfFreeServersForClass(int classId) intgetServerRequired(int class_id) Returns server types for specific nodeGets the service strategy for each class.ServiceStrategy[][]booleanbooleanprotected voidnodeLinked(NetNode node) This method should be overridden to implement a specific behaviour of the node section when the node section itself is linked to the owner node.protected intprocess(NetMessage message) This method should be overridden to implement a specific NetMessage processor.Methods inherited from class ServiceSection
sendBackward, sendBackward, sendForward, sendForwardMethods inherited from class NodeSection
analyze, analyze, analyzeFCR, analyzeFJ, analyzeJoin, analyzeTransition, getIntSectionProperty, getIntSectionProperty, getJobClasses, getJobInfoList, getObject, getObject, getOwnerNode, getParameter, getParameter, getSectionID, isEnabled, isEnabled, isMine, isMyOwnerNode, redirect, removeMessage, send, send, send, send, send, send, sendAckAfterDrop, sendMe, sendMe, updateVisitPath
-
Constructor Details
-
Server
public Server(Integer numberOfServers, Integer[] numberOfVisits, ServiceStrategy[] serviceStrategies) throws NetException - Throws:
NetException
-
Server
public Server(Integer numberOfServers, Integer[] numberOfVisits, ServiceStrategy[] serviceStrategies, QueuePutStrategy[] preemptiveStrategies) throws NetException - Throws:
NetException
-
Server
public Server(Integer numberOfServers, Integer[] numberOfVisits, ServiceStrategy[] serviceStrategies, Object[] switchoverStrategies, Object[] delayOffStrategies, Object[] setUpStrategies) throws NetException - Throws:
NetException
-
Server
public Server(Integer numberOfServers, Integer[] numberOfVisits, ServiceStrategy[] serviceStrategies, Object[] delayOffStrategies, Object[] setUpStrategies, Integer[] serverNumRequired, String[] serverTypesNames, Integer[] serverTypesNumOfServers, Object[] serverTypesCompatibilities, String schedulingPolicy) throws NetException - Throws:
NetException
-
Server
public Server(Integer numberOfServers, Integer[] numberOfVisits, ServiceStrategy[] serviceStrategies, Integer[] serverNumRequired, String[] serverTypesNames, Integer[] serverTypesNumOfServers, Object[] serverTypesCompatibilities, String schedulingPolicy) throws NetException - Throws:
NetException
-
Server
public Server(Integer numberOfServers, Integer[] numberOfVisits, ServiceStrategy[] serviceStrategies, QueuePutStrategy[] preemptiveStrategies, Integer[] serverNumRequired, String[] serverTypesNames, Integer[] serverTypesNumOfServers, Object[] serverTypesCompatibilities, String schedulingPolicy) throws NetException - Throws:
NetException
-
Server
public Server(Integer numberOfServers, Integer[] numberOfVisits, ServiceStrategy[] serviceStrategies, Object[] switchoverStrategies, Object[] delayOffStrategies, Object[] setUpStrategies, Integer[] serverNumRequired, String[] serverTypesNames, Integer[] serverTypesNumOfServers, Object[] serverTypesCompatibilities, String schedulingPolicy) throws NetException - Throws:
NetException
-
Server
public Server(Integer numberOfServers, Integer[] numberOfVisits, ServiceStrategy[] serviceStrategies, Object[] switchoverStrategies, Integer[] serverNumRequired, String[] serverTypesNames, Integer[] serverTypesNumOfServers, Object[] serverTypesCompatibilities, String schedulingPolicy) throws NetException - Throws:
NetException
-
Server
public Server(Integer numberOfServers, Integer[] numberOfVisits, ServiceStrategy[] serviceStrategies, QueuePutStrategy[] preemptiveStrategies, Object[] switchoverStrategies, Object[] delayOffStrategies, Object[] setUpStrategies, Integer[] serverNumRequired, String[] serverNames, Integer[] serversPerServerType, Object[] serverCompatibilities, String schedulingPolicy) throws NetException - Throws:
NetException
-
Server
public Server(Integer numberOfServers, Integer[] numberOfVisits, ServiceStrategy[] serviceStrategies, Map<String, Object> advancedFeatures) throws NetException- Throws:
NetException
-
-
Method Details
-
getClassCompatibilities
Description copied from class:NodeSectionReturns class compatibilities for specific node- Overrides:
getClassCompatibilitiesin classNodeSection
-
getServerTypes
Description copied from class:NodeSectionReturns server types for specific node- Overrides:
getServerTypesin classNodeSection
-
getDoubleSectionProperty
Description copied from class:NodeSectionGets a double type property of this node. Note that the first 256 identifiers are reserved by NodeSection class.- Overrides:
getDoubleSectionPropertyin classNodeSection- Parameters:
id- Property identifier (see properties constants).- Returns:
- Property value.
- Throws:
NetException- if the requested property is not available.
-
getDoubleSectionProperty
Description copied from class:NodeSectionGets a double type property of this node depending on a specified job class. Note that the first 256 identifiers are reserved by NodeSection class.- Overrides:
getDoubleSectionPropertyin classNodeSection- Parameters:
id- Property identifier (see properties constants).jobClass- jobClass.- Returns:
- Property value.
- Throws:
NetException- if the requested property is not available.
-
nodeLinked
Description copied from class:NodeSectionThis method should be overridden to implement a specific behaviour of the node section when the node section itself is linked to the owner node. This method should be used to set node section properties depending on the owner node ones.- Overrides:
nodeLinkedin classNodeSection- Parameters:
node- Owner node.- Throws:
NetException
-
findNextJobToProcessLCFS
-
findNextJobToProcessFCFS
-
getServerRequired
public int getServerRequired(int class_id) -
getNumOfFreeServersForClass
public int getNumOfFreeServersForClass(int classId) -
hasFreeServers
public boolean hasFreeServers() -
getServiceStrategiesPerServerType
-
process
Description copied from class:NodeSectionThis method should be overridden to implement a specific NetMessage processor.- Specified by:
processin classNodeSection- Parameters:
message- message to be processed.- Returns:
- message processing result.
- Throws:
NetException
-
isInVacation
public boolean isInVacation() -
getServiceStrategies
Gets the service strategy for each class.- Returns:
- the service strategy for each class.
-
getLastJobInfo
Gets the last job info in the service list.- Returns:
- the last job info in the service list.
-