NEOS Server Client Tools
The NEOS Server provides a downloadable package of client submission tools. The package includes a Java client, a Python client, and a Python 3 client. Note that it is not necessary to download the tools. All of the solvers are available through a web submission form and email. Some solvers are available from your own program via the XML-RPC interface, and some solvers are accessible from your own AMPL or GAMS modeling environment via Kestrel.
Installing the Client Tools
To install the client tools, unzip ClientTools.zip. There will be three subfolders unzipped into a ClientTools directory: JavaClient, PythonClient, and Python3Client.
To use any of the client tools, you must create a file with an XML description of your optimization problem. Each solver interface page has a link to a page describing the required XML format for that solver. The list of solvers is here. The User's Guide to the NEOS Server provides more information on creating job XML files and submitting jobs to NEOS.
Running the Client Tools
To use the Java GUI, cd to the ClientTools directory and run:
java -jar NeosClient.jarThe GUI uses the XML-RPC client library developed by Apache. From the "Neos Submission Tool" window that pops up, you can select from the Solvers menu the problem category and then the solver:interface combination. The tool window will display fields for uploading the model file, the data file, and the commands/options file as appropriate. At the bottom of the window is a submit to NEOS button. The results will be displayed in the window when the job finishes.
To use the Python client, cd to the ClientTools/PythonClient directory and run:
python NeosClient.py myxmlfile.xmlwhere myxmlfile.xml is the XML description of the optimization problem in the format required by the solver.
Python 3 Client
To use the Python 3 client, cd to the ClientTools/Python3Client directory and run:
python3 NeosClient.py myxmlfile.xmlwhere myxmlfile.xml is the XML description of the optimization problem in the format required by the solver.
Writing Your Own Client
The NEOS Server's XML-RPC server can communicate with clients written in a variety of languages including C, C++, Java, perl, PHP, Python, and Ruby. A good source of information on writing your own client code is Eric Kidd's XML-RPC HowTo. The NEOS Server XML-RPC API information is available here.
In order to conform with modern security standards, the NEOS Server is switching from HTTP submissions to HTTPS submissions. The new URL for the NEOS XML-RPC server is https://neos-server.org:3333. Please update your client programs with the new URL to avoid submission problems.