Class SolverLQNS

java.lang.Object
jline.solvers.Solver
jline.solvers.lqns.SolverLQNS
Direct Known Subclasses:
LQNS

public class SolverLQNS extends Solver
Solver interface to the LQNS external tool for Layered Queueing Network analysis.

SolverLQNS provides integration with the external LQNS (Layered Queueing Network Solver) command-line tool developed at Carleton University. This solver enables high-performance analysis of complex layered queueing networks through native C++ implementations.

Key LQNS integration capabilities:

  • External tool integration via command-line interface
  • LQN model serialization to LQNS XML format
  • High-performance native solver algorithms
  • Result parsing and integration back to LINE
  • Support for complex software system models

Requirements: This solver requires the 'lqns' and 'lqsim' command-line tools to be installed and available in the system PATH. Tools can be obtained from: http://www.sce.carleton.ca/rads/lqns/

Since:
1.0
See Also:
  • Constructor Details

  • Method Details

    • getFeatureSet

      public static FeatureSet getFeatureSet()
      Returns the feature set supported by the LQNS solver
      Returns:
      the feature set supported by the LQNS solver
    • isAvailable

      public static boolean isAvailable()
    • getAvg

      public SolverResult getAvg()
    • getAvgTable

      public final LayeredNetworkAvgTable getAvgTable()
    • getEnsembleAvg

      protected SolverResult getEnsembleAvg()
    • getStruct

      public LayeredNetworkStruct getStruct()
    • listValidMethods

      public List<String> listValidMethods()
    • listValidMethods

      public List<String> listValidMethods(Network model)
    • parseXMLResults

      public SolverResult parseXMLResults(String filename) throws IOException
      Throws:
      IOException
    • runAnalyzer

      public void runAnalyzer() throws IllegalAccessException, ParserConfigurationException
      Description copied from class: Solver
      Executes the solver algorithm to analyze the model. This abstract method must be implemented by concrete solver classes.
      Specified by:
      runAnalyzer in class Solver
      Throws:
      IllegalAccessException - if access to required resources is denied
      ParserConfigurationException - if XML parsing configuration fails
    • runAnalyzer

      public void runAnalyzer(SolverOptions options) throws IllegalAccessException, ParserConfigurationException
      Throws:
      IllegalAccessException
      ParserConfigurationException
    • supports

      public boolean supports(Network model)
      Description copied from class: Solver
      Checks if this solver supports the given network model. Default implementation returns true; subclasses should override to provide specific feature validation.
      Overrides:
      supports in class Solver
      Parameters:
      model - the network model to check
      Returns:
      true if the model is supported, false otherwise
    • getRawAvgTables

      public LayeredNetworkAvgTable[] getRawAvgTables()
      Get raw average tables with detailed metrics for nodes and calls. This method provides more detailed metrics than getAvgTable(), including phase-specific utilization and service times, processor metrics, and call waiting times. Returns two tables aligned with MATLAB's getRawAvgTables: - NodeAvgTable: Node, NodeType, Utilization, Phase1Utilization, Phase2Utilization, Phase1ServiceTime, Phase2ServiceTime, Throughput, ProcWaiting, ProcUtilization - CallAvgTable: SourceNode, TargetNode, Type, Waiting
      Returns:
      Array containing [NodeAvgTable, CallAvgTable] with detailed metrics
    • defaultOptions

      public static SolverOptions defaultOptions()
      Returns the default solver options for the LQNS solver.
      Returns:
      Default solver options with SolverType.LQNS