org.optimizationservices.oscommon.communicationagent
Class OSSolverAgent

java.lang.Object
  extended by org.optimizationservices.oscommon.communicationagent.OSSolverAgent
All Implemented Interfaces:
OShL

public class OSSolverAgent
extends java.lang.Object
implements OShL

The OSSolverAgent.java class implements all the OShL interface. Thus it is OS-type solver. It implements all the methods as specified in the Optimization Services (OS) Framework, specifically the Optimization Services hook-up Language (OShL).

The OSSolverAgent class is a library class that contains methods to help solver agents communicate with Optimization Services (OS) Solvers as specified by the Optimization Services framework. It hides all the SOAP protocol related technical details from an optimization user.

Since:
OS 1.0
Version:
1.0, 03/14/2004
Author:
Robert Fourer, Jun Ma, Kipp Martin
See Also:
OShL

Field Summary
 java.lang.String solverAddress
          solverAddress holds the address (uri/url) of the Optimization Services (OS) solver.
 
Constructor Summary
OSSolverAgent()
          Constructor.
OSSolverAgent(java.lang.String solverAddress)
          Constructor.
 
Method Summary
 java.lang.String getJobID(java.lang.String osol)
          Get a unique job id from a service, before calling the service to solve a problem.
 java.lang.String kill(java.lang.String osol)
          Kill a previously sent/solved optimization job.
 java.lang.String knock(java.lang.String osplInput, java.lang.String osol)
          This method is called by one optimization service on another optimization service to provide runtime dynamic process information (push mechanism).
static void main(java.lang.String[] args)
          main for test purposes.
 java.lang.String retrieve(java.lang.String osol)
          Retrieve results from a previously sent/solved optimization job.
 boolean send(java.lang.String osil, java.lang.String osol)
          Send (or asynchronously solve) an optimization problem with options.
 java.lang.String solve(java.lang.String osil, java.lang.String osol)
          Solve an optimization problem with options.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

solverAddress

public java.lang.String solverAddress
solverAddress holds the address (uri/url) of the Optimization Services (OS) solver.

Constructor Detail

OSSolverAgent

public OSSolverAgent()
Constructor.


OSSolverAgent

public OSSolverAgent(java.lang.String solverAddress)
Constructor.

Parameters:
solverAddress - holds the address (uri/url) of the Optimization Services (OS) solver.
Method Detail

solve

public java.lang.String solve(java.lang.String osil,
                              java.lang.String osol)
Solve an optimization problem with options. The problem instance is given by a string following the Optimization Services instance Language (OSiL) schema. The options are given in a string following the Optimization Services option Language (OSoL) schema. The function returns the solution in a string that follows the Optimization Services result Language (OSrL) schema.

Specified by:
solve in interface OShL
Parameters:
osil - holds the optimization instance in a string which format follows the Optimization Services instance Language (OSiL) schema.
osol - holds the optimization option in a string which format follows the Optimization Services option Language (OSoL) schema.
Returns:
osrl, the optimization result in a string which format follows the Optimization Services result Language (OSrL) schema.

getJobID

public java.lang.String getJobID(java.lang.String osol)
Get a unique job id from a service, before calling the service to solve a problem. This method call is always required before an asynchronous send call. It may be or may not be used before a synchronous solve call.

Specified by:
getJobID in interface OShL
Parameters:
osol - holds the optimization option in a string which format follows the Optimization Services option Language (OSoL) schema.
Returns:
jobID, a unique job ID generated by the service.

send

public boolean send(java.lang.String osil,
                    java.lang.String osol)
Send (or asynchronously solve) an optimization problem with options. The problem instance is given by a string following the Optimization Services instance Language (OSiL) schema. The options are given in a string following the Optimization Services option Language (OSoL) schema. The OSoL option has to contain a job id.

Specified by:
send in interface OShL
Parameters:
osil - holds the optimization instance in a string which format follows the Optimization Services instance Language (OSiL) schema.
osol - holds the optimization option in a string which format follows the Optimization Services option Language (OSoL) schema. It should contain the jobID information that is previous obtained from the optimization service.
Returns:
success whether the asynchronous communication is successful or not.

retrieve

public java.lang.String retrieve(java.lang.String osol)
Retrieve results from a previously sent/solved optimization job.

Specified by:
retrieve in interface OShL
Parameters:
osol - holds the optimization option in a string which format follows the Optimization Services option Language (OSoL) schema. It should contain the jobID information that is previous obtained from the optimization service.
Returns:
osrl, the optimization result in a string which format follows the Optimization Services result Language (OSrL) schema. If the result cannot be retrieved, it should be indicated in the message/status section of OSrL.

kill

public java.lang.String kill(java.lang.String osol)
Kill a previously sent/solved optimization job.

Specified by:
kill in interface OShL
Parameters:
osol - holds the optimization option in a string which format follows the Optimization Services option Language (OSoL) schema. It should contain the jobID information that is previous obtained from the optimization service.
Returns:
ospl, the ouput kill process information in a string which format follows the OSpL schema.

knock

public java.lang.String knock(java.lang.String osplInput,
                              java.lang.String osol)
This method is called by one optimization service on another optimization service to provide runtime dynamic process information (push mechanism).

Specified by:
knock in interface OShL
Parameters:
osplInput - holds the input process information a string which format follows the Optimization Services process Language (OSpL) schema.
osol - holds the optimization option in a string which format follows the Optimization Services option Language (OSoL) schema.
Returns:
osplOutput, the ouput process information in a string which format follows the OSpL schema.

main

public static void main(java.lang.String[] args)
main for test purposes.

Parameters:
argv - command line arguments.